我很抱歉,我问这样一个初学者问题,但我在网上发现了相互矛盾的信息.我会在大学问,但直到明年2月.
Do Vectors会自动调整大小吗?或者您需要定期检查当前大小,并在需要更多空间时调整大小.它看起来是自动调整大小,但我不确定这是一个功能还是编译器挥动魔杖.
解决方法
如果使用push_back或insert,则yes vector会自行调整大小.这是一个演示:
#include<iostream> #include<vector> using namespace std; int main() { vector < int > a; a.push_back(1); a.push_back(2); a.push_back(3); for (int value : a) { cout << value << " "; } cout << endl << "Current size " << a.size() << endl; return 0; }
它输出为:
1 2 3 Current size 3
现在请记住,如果你做[3] = 5.它不会自动调整矢量大小.
如果需要,您也可以手动调整矢量大小.对于演示,将以下代码附加到上面的代码中.
a.resize(6); for (int value : a) { cout << a << " "; } cout << endl << "Current size " << a.size() << endl;
现在它将输出:
1 2 3 Current size 3 1 2 3 0 0 0 Current size 6
它认为你得到了答案.