#include <iostream>
#include <vector>
using namespace std;
/*
vec.begin()//指向迭代器中第一个元素。
vec.end()//指向迭代器中末端元素的下一个,指向一个不存在元素。
vec.push_back(elem) //在尾部加入一个数据。
vec.pop_back() //删除最后一个数据。
vec.capacity() //vector可用空间的大小。
vec.size()//返回容器中数据个数。
vec.empty() //判断容器是否为空。
vec.front() //传回第一个数据。
vec.back() //传回最后一个数据,不检查这个数据是否存在。
vec.at(index) //传回索引idx所指的数据,如果idx越界,抛出out_of_range。
vec.clear() //移除容器中所有数据。
vec.erase(iterator) //删除pos位置的数据,传回下一个数据的位置。
vec.erase(begin,end) //删除[beg,end)区间的数据,传回下一个数据的位置。注意:begin和end为iterator
vec.insert(position,elem) //在pos位置插入一个elem拷贝,传回新数据位置。
vec.insert(position,n,elem) //在pos位置插入n个elem数据,无返回值。
vec.insert(position,begin,end) //在pos位置插入在[beg,end)区间的数据,无返回值。
*/
/*
向量的声明及初始化
vector<int> a ; //声明一个int型向量a
vector<int> a(10) ; //声明一个初始大小为10的向量
vector<int> a(10, 1) ; //声明一个初始大小为10且初始值都为1的向量
vector<int> b(a) ; //声明并用向量a初始化向量b
vector<int> b(a.begin(), a.begin()+3) ; //将a向量中从第0个到第2个(共3个)作为向量b的初始值
*/
//vector 相当一个可变数组
int main()
{
vector<int> vt;
//1.push_back向vector类中插入四个元素
vt.push_back(100);
vt.push_back(200);
vt.push_back(300);
vt.push_back(400);
//2.查看元素大小
/*
cout << "size = " << vt.size() << endl;
for (int i = 0; i < vt.size(); i++) {
cout << vt[i] << " ";
}
cout << endl;
*/
//3.vt.front() 传回第一个数据。
// vt.back() 传回最后一个数据,不检查这个数据是否存在。
/*
cout << "frist = " << vt.front() << endl;
cout << "end = " << vt.back() << endl;
*/
//4.pop_back删除最后一个元素
/*
vt.pop_back();
*/
//5.遍历容器的几种方式
//方法一:
/*
cout << "size = " << vt.size() << endl;
for (int i = 0; i < vt.size(); i++) {
cout << vt[i] << " ";
}
cout << endl;
*/
//方法二:
/*
vector<int>::iterator it;
for (it = vt.begin(); it != vt.end() ;it++) {
cout << *it << " ";
}
cout << endl;
*/
//6.capacity() vector可用空间的大小。
/*
cout << "capacity = " << vt.capacity() << endl;
*/
//7.at(index) 传回索引idx所指的数据,如果idx越界,抛出out_of_range。
/*
cout << "vt.at(0) = " << vt.at(0) << endl;
cout << "vt.at(2) = " << vt.at(2) << endl;
*/
//8.erase(iterator) //删除pos位置的数据,传回下一个数据的位置。
/*
vt.erase(vt.begin()+2);
vector<int>::iterator it;
for (it = vt.begin(); it != vt.end() ;it++) {
cout << *it << " ";
}
cout << endl;
*/
//9.vec.erase(begin,end)
//删除[beg,end)区间的数据,传回下一个数据的位置。注意:begin和end为iterator
/*
vt.erase(vt.begin() + 1, vt.begin() + 2);
vector<int>::iterator it;
for (it = vt.begin(); it != vt.end() ;it++) {
cout << *it << " ";
}
cout << endl;
*/
return 0;
}