【发布时间】:2015-04-25 14:56:50
【问题描述】:
假设我有一个函数,如下所示:
void a_fct( std::vector<double> &some_vector )
{
std::vector<double> a_temporary_vector = some_vector;
... some stuff involving only a_temporary_vector ...
some_vector = a_temporary_vector;
}
这当然有点傻,但它只是为了提出以下一般性问题:
在我看来,应该将
a_temporary_vector移动到some_vector此处,因为它会超出范围。但是将some_vector移动到a_temporary_vector而不是复制是否安全?现在想象一下,在代码的其他地方,我有一个指向作为参数给出的向量的指针。如果我将
some_vector移动到a_temporary_vector,这个指针是否仍然指向它?
在这两种情况下,我是否可以期望它适用于任何 STL 实现?
【问题讨论】: