补充内容
- begin, end,返回的是迭代器的位置,并不是指针
- data()函数可以返回的是第一个元素指针的位置
- end(),返回的最后一个元素后面一个位置,也就是元素后端的占位符
- rend(),从后往前的第一个元素的位置
- resize(),重新设置大小,添加元素之后
v.resize()
该函数的使用方法是:有数据大小之后重新设置大小,多退少补v.reserve :据说给的是容量,能够存储的最多的长度
, size是长度 capacity 是容量- 还支持front 和 back()函数 ,
push_back()
还有与之相对的是pop_back()
- 迭代器的使用时是
迭代器::iterator 迭代器名称
- 迭代器只有 ++ 和 *(解运算符)总之非常好用
- 看其中代码部分,需要加强使用规则!
#include <iostream>
#include <vector>
#include <deque>
using namespace std;
int main()
{
int a[10] = {1,3,5,9,7};
vector <int> v;
v.reserve(100);
v.insert(v.begin(),a,a+3);
int *p = v.data();
v.push_back(4);
cout << (*p) << " " << *(p+3) <<endl;
cout << "front: "<< v.front() << " " << v.back() <<endl;
v.pop_back();
vector<int>::iterator it = v.begin();
int k = distance(v.begin(),v.end());
cout <<"dist: " << k << endl;
for(;it != v.end();it++)
cout <<*it <<" ";
cout <<endl;
v.resize(20);
cout <<v.capacity() << ' ' << v.size() << endl;
cout << v.capacity() << endl;
cout << v.max_size() << endl;
return 0;
}