Snippet1:以下代码片段打印出 0 1 但返回一个空 vector 。
vector<int> trial() {
vector<int> ret;
ret.reserve(2);
ret[0] = 0;
ret[1] = 1;
cout << ret[0] << " " << ret[1] << "\n";
return ret;
}
片段 2:以下片段打印出 0 1 并返回包含 {0,1} 的 vector 。
vector<int> trial() {
vector<int> ret;
ret.push_back(0);
ret.push_back(1);
cout << ret[0] << " " << ret[1] << "\n";
return ret;
}
为什么代码片段 1 不像代码片段 2 那样工作。如果我要保留内存并向 vector 添加值。
最佳答案
reserve()
不会改变 vector 大小,你想要的是 resize()
它。
关于c++ - 以下向 C++ vector 添加元素的方法有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54742445/