说我有以下几点:std :: vector可以='d到另一个std :: vector吗?
std::vector<int> myints;
,然后我返回一个int向量函数:
std::vector<int> GiveNumbers()
{
std::vector<int> numbers;
for(int i = 0; i < 50; ++i)
{
numbers.push_back(i);
}
return numbers;
}
我能那么做:
myints = GiveNumbers();
会安全地这样做让它使得myint中的数字为0到49,没有别的了?这样做会清楚以前在myint中可能会发生什么?如果不是最好的方法来做到这一点?
谢谢
+1,它可能不会在实际生活中调用op =,以便对效率进行警告。 – Brian 2010-08-16 17:59:42
如果你的编译器支持RVO,它不应该是低效率的。 – jamesdlin 2010-08-16 18:27:03
RVO应该将它从复制到复制一次才能减少。 – 2010-08-16 18:34:15