vector之resize剖析
零、前言
曾经的我以为自己真的学会了vector!人的认知有限,就以为自己什么都会了。当你深入研究一下时,才发现自己知道的知识冰山一角!知道的越多,发现自己知道的越少!
一、先看下面一段代码
vector<int> tempVector;
tempVector.resize(5);
tempVector.push_back(1);
tempVector.push_back(2);
tempVector.push_back(3);
tempVector.push_back(4);
tempVector.push_back(5);
for(auto iter:tempVector)
{
cout << iter << endl;
}
上面的结果输出是什么?1,2,3,4,5?如果你觉得是,那恭喜你答错了。请继续往下看
二、测试结果
看到了吧,使用resize后,直接把vector中的元素初始化成了0。
那问题来了:怎么能使用resize,然后又能输出1,2,3,4,5?答案在下面的测试代码。
三、测试代码
#include <iostream>
#include <vector>
using namespace std;
in