我一直在使用相同的std::vector<int>,以便尽量避免分配deallocating.在几行中,我的代码如下:
std::vector<int> myVector;
myVector.reserve(4);
for (int i = 0; i < 100; ++i) {
fillVector(myVector);
//use of myVector
//....
myVector.resize(0);
}
Run Code Online (Sandbox Code Playgroud)
在每次迭代中,myVector最多将填充4个元素.为了制作高效的代码,我想永远使用myVector.但是,在被摧毁myVector.resize()的元素中myVector.我明白这myVector.clear()会产生同样的效果.
我想如果我可以覆盖现有的元素,myVector我可以节省一些时间.但是我认为std::vector不能做到这一点.
有没有办法做到这一点?创建一个覆盖元素的本土实现是否有意义?
您的代码已经有效(myVector.clear()比有更好的样式myVector.resize(0)).
'int destructor'什么都不做.
所以resize(0)只需设置size为0,capacity不变.
| 归档时间: |
|
| 查看次数: |
2866 次 |
| 最近记录: |