我有一个包含字符串 vector 的类和一个分配给该 vector 的函数。我正在更改我的功能,以便仅在成功时才分配给 vector 。为此,我在函数中使用了一个临时字符串 vector ,然后如果函数成功,我将分配给类中的字符串 vector 。
例如:
class test
{
vector<string> v;
void Function()
{
vector<string> temp;
v = temp; // Is this better?
v.swap( temp ); // Or instead is this better?
}
};
最佳答案
在 C++11 中,移动它:
v = std::move(temp);
在古老的方言中,交换比复制分配更好(假设 vector 不是空的,就像您的示例中那样)。
移动或交换只需要修改几个指针,而复制则需要内存分配和其他昂贵的恶作剧。
关于c++ - 更快地交换或分配字符串 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22001854/