std :: vector是否可以=另一个std :: vector?

jma*_*erx 5 c++ stl vector

说我有以下内容:

std::vector<int> myints;
Run Code Online (Sandbox Code Playgroud)

然后我有一个返回int向量的函数:

std::vector<int> GiveNumbers()
{
  std::vector<int> numbers;
for(int i = 0; i < 50; ++i)
{
  numbers.push_back(i);
}

return numbers;
}
Run Code Online (Sandbox Code Playgroud)

我可以这样做:

myints = GiveNumbers();
Run Code Online (Sandbox Code Playgroud)

会安全地做到这一点,以便myint的数字为0到49而没有别的吗?这样做会清楚以前在myint中可能出现的情况吗?如果不是最正确的方法吗?

谢谢

A. *_*evy 7

是.这很安全.您将把GiveNumbers()函数的结果复制到myints.它可能不是最有效的方法,但它是安全和正确的.对于小向量,效率差异不会那么大.

  • 如果您的编译器支持RVO,那么效率应该不高. (2认同)