【发布时间】:2021-03-27 00:34:47
【问题描述】:
我想知道将一个向量设置为等于另一个向量并在第一个向量更改后释放内存的最有效方法是什么。我无法想象将一个向量调整为另一个向量的大小并对其进行迭代并设置每个索引是最有效的方法,
std::vector< int > a, b;
//Stuff happens
//Swap
b.resize(a.size());
for (int i=0; i < a.size(); i++){
b[i] = a[i];
}
a.clear();
我想像memset 这样的东西会更有效率,或者emplace_back 当你在不复制或构造东西的情况下推入元素时,但我不知道哪个更有效或如何使用它与std::vector's。还有a = b,但那在幕后做什么?它是在复制它,而不是仅仅将现有向量a 的内存设置为b?实现这一目标的最有效方法是什么?
【问题讨论】:
标签: c++ optimization vector