C++ STL向量:调整大小()和赋值()

C++ STL向量:调整大小()和赋值(),c++,vector,stl,C++,Vector,Stl,拥有一个类成员std::vector v和int n,在未初始化的vector上使用以下内容有什么区别: v.assign(n, 0.0); 或 assign将大小设置为n并将所有元素值设置为0.0,而resize将大小设置为n并仅将新元素值设置为0.0 如果v之前是空的,那么它们是相同的,但是assign可能更清晰。我猜未初始化是指默认已初始化,即空向量,然后 v.assign(n, 0.0); 及 两者都将向量的大小更改为n,将所有元素更改为0.0。请注意,对于非空向量,它们通常不相同,

拥有一个类成员
std::vector v
int n
,在未初始化的
vector上使用以下内容有什么区别:

v.assign(n, 0.0);


assign
将大小设置为
n
并将所有元素值设置为0.0,而
resize
将大小设置为
n
并仅将新元素值设置为0.0

如果
v
之前是空的,那么它们是相同的,但是
assign
可能更清晰。

我猜未初始化是指默认已初始化,即空向量,然后

v.assign(n, 0.0);


两者都将向量的大小更改为
n
,将所有元素更改为
0.0
。请注意,对于非空向量,它们通常不相同,
resize()
仅将新元素设置为
0.0

赋值意味着用新属性(大小和元素)替换向量 Reszie意味着保留旧数据并用新元素扩展新向量,以防新的大小大于旧的大小。否则,缩小尺寸并消除多余的

运行以下代码两次。一个用于分配第二个用于调整大小(只需取消注释第一个)

#包括
#包括
int main()
{
std::vec1;
vec1.分配(7100);
//vec1.调整大小(7100);

std::cout Link only答案不是很好的答案。你需要提供链接的上下文。如果你不改进你的答案,它会被删除。更好。它仍然有点冗长;其他答案由于更短而更清晰。@MSalters,有时我们需要看一个例子。我通常阅读文档,但是,我必须编写代码来查看其中的内容我的代码清楚地说明了两者之间的区别。无论如何,谢谢。
v.assign(n, 0.0);
v.resize(n, 0.0);
#include <iostream>
#include <vector>


int main ()
{
  std::vector<int> vec1;


  vec1.assign(7,100);     
 // vec1.resize(7, 100);
  std::cout << "Size: " << vec1.size() << std::endl;
   for (unsigned int i(0); i < vec1.size(); ++i)
   {
      std::cout << vec1[i] << std::endl;
   }
   vec1.resize(4,5); 
  // vec1.assign(4,5); 
   std::cout << "\nSize: " << vec1.size() << std::endl;

   for (unsigned int i(0); i < vec1.size(); ++i)
   {
      std::cout << vec1[i] << std::endl;
   }

    vec1.resize(10,5); 
   //vec1.assign(10,5); 
   std::cout << "\nSize: " << vec1.size() << std::endl;

   for (unsigned int i(0); i < vec1.size(); ++i)
   {
      std::cout << vec1[i] << std::endl;
   }

   std::cin.get();
  return 0;
}