在下面的代码中,调用 resize 或 erase 哪个更有效?
vector<int> a(5000);
//....
vector<int>::iterator it = remove(a.begin(),a.end(),8)
a.resize( std::distance(a.begin(),it));
//or
a.erase(it,a.end());
我认为这取决于重复元素的数量,对吧?
最佳答案
重复项的数量相等,它们的复杂度也相等。缩小 vector 时,resize
根据 erase
定义:
n3337, 23.3.6.3 说:
void resize(size_type sz);
9 Effects: If
sz <= size()
, equivalent toerase(begin() + sz, end())
;. [...]
关于c++ - 在 vector 中使用删除或调整大小哪个更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21828008/