首先说说vector的三种遍历方式
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int array[] = { 2,4,6,8 };
vector<int> v(array, array + sizeof(array) / sizeof(array[0]));
//用迭代器遍历打印
vector<int>::iterator it = v.begin();
while (it != v.end())
{
cout << *it <<" ";
it++;
}
cout << endl;
//vector<int>::reverse_iterator rit = v.rbegin(); //反向迭代器,用法相同
//vector<int>::const_iterator cit = v.cbegin(); //常量迭代器,要遍历的值需要是常量值
//用[]遍历打印
for (size_t i = 0; i < v.size(); i++)
{
cout << v[i] << " ";
}
cout << endl;
//用auto进行遍历打印(C++11)
for (auto i : v)
{
cout << i << " ";
}
cout << endl;
return 0;
}
重点的几个函数用法
resize函数的用法以及要注意的(划重点啦!!!)
//resize 函数重新分配大小,改变容器的大小,并且创建对象
//1. 当n小于当前size()值时候,vector首先会减少size()值
//保存前n个元素,然后将超出n的元素删除(remove and destroy)
//2. 当n大于当前size()值时候,vector会插入相应数量的元素 使得size()值达到n,
//并对这些元素进行初始化为0,如果调用void resize (size_type n, value_type val);
//指定val,vector会用val来初始化这些新插入的元素
//3. 当n大于capacity()值的时候,会自动分配重新分配内存存储空间。
// v.resize(2); //对应上面的1, 输出结果为2,4
// v.resi