gpt4 book ai didi

c++ - 清空一个 std::vector 而不改变它的大小

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:08:53 24 4
gpt4 key购买 nike

我想在 for 循环中重用 std::vector。但是,对于 for 循环的每个迭代步骤,我都需要 vector 为空。

问题:如何在不改变容量的情况下以最有效的方式快速清空一个 vector ?

目前我用的是

std::vector<int> myVec;
for(int i=0; i<A_BIG_NUMBER; ++i) {
std::vector<T>().swap(myVec);
myVec.reserve(STANDARD_MAXIMUM);

/// .. doing business
}

干杯!

解决方案:

感谢您的回答,这是我如何实现(检查)它的:

#include <vector>
#include <iostream>

int main() {

int n = 10;
std::vector< int > myVec;
myVec.reserve(n);
for(int j=0; j<3; ++j) {
myVec.clear();
for(int i=0; i<n; ++i) {
myVec.push_back(i);
}
for(int i=0; i<myVec.size(); ++i) {
std::cout << i << ": " << myVec[i] << std::endl;
}
}

return 0;
}

编辑:从 operator[] 更改为 push_back

最佳答案

使用vector::clear 方法。它会在不降低容量的情况下清除内容。

关于c++ - 清空一个 std::vector 而不改变它的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9681767/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com