【发布时间】:2020-12-21 01:05:58
【问题描述】:
我想知道以下哪个版本更适合清空vector,或者是否有更好的方法:
std::vector<T> v;
// 1
v.erase(v.begin(), v.end());
// 2
v = {};
我的想法是一个比另一个更复杂,但一个可以节省内存重新分配......
【问题讨论】:
-
那要看你以后要不要用向量了
我想知道以下哪个版本更适合清空vector,或者是否有更好的方法:
std::vector<T> v;
// 1
v.erase(v.begin(), v.end());
// 2
v = {};
我的想法是一个比另一个更复杂,但一个可以节省内存重新分配......
【问题讨论】:
没有。惯用的方式是调用clear();:
std::vector<T> v = { ... };
v.clear();
【讨论】: