向量vector是一个封装了动态大小数组的顺序容器sequence container。和任意其他类型一样,能够存放各种类型的对象。可以简单认为vector就是一个任意存放类型的动态数组。
大致分为:构造函数、增加函数、删除函数、遍历函数、判定函数、大小函数,以及其他函数;具体参考Cpp手册:
vector。
- push_back 在数组的最后添加一个数值。
- pop_back 删掉数组的最后一个数据。
- at 得到编号位置index的数据。
- begin 得到数组的头指针。
- end 得到数组的最后一个单元 + 1的指针。
- front 得到数组头部的引用。
- back 得到数组的最后一个单元的引用。
- max_size 得到vector最大容量。
- capacity 得到vector分配的大小。
- size 当前使用数据的大小。
- resize 改变当前使用的数据大小,若比当前使用的要大,则填充默认数值。
- reserve 改变当前vector所分配空间的大小。
- erase 删除指针指向的数据项。
- clear 清空了当前的vector。
- rbegin 把vector反转之后的开始指针返回,就是原数组的end - 1。
- rend 把vector反转之后的结束指针返回,就是原数组的begin -1。
- empty 判定vector是否空?
- swap 与另一个vector交换数据。
#include
#include
#include
using namespace std;
int main()
{
vector<int>obj;//创建一个向量存储容器 int
for(int i=0;i<10;i++) // push_back(elem)在数组最后添加数据
{
obj.push_back(i);
cout<<obj[i]<<",";
}
for(int i=0;i<5;i++)//去掉数组最后一个数据
{
obj.pop_back();
}
cout<<"\n"<<endl;
for(int i=0;i<obj.size();i++)//size()容器中实际数据个数
{
cout<<obj[i]<<",";
}
return 0;
}
#include
#include
#include
using namespace std;
int main()
{
vector<int>obj;
for(int i=0;i<10;i++)//push_back(elem)在数组最后添加数据
{
obj.push_back(i);
cout<<obj[i]<<",";
}
obj.clear();//清除容器中所以数据
for(int i=0;i<obj.size();i++)
{
cout<<obj[i]<<endl;
}
return 0;
}
#include
#include
#include
using namespace std;
int main()
{
vector<int>obj;
for(int i=0;i<10;i++)//push_back(elem)在数组最后添加数据
{
obj.push_back(i);
cout<<obj[i]<<",";
}
obj.clear();//清除容器中所以数据
for(int i=0;i<obj.size();i++)
{
cout<<obj[i]<<endl;
}
return 0;
}
需要注意的是:
- sort方法需要在头文件要加入**#include < algorithm>**。
- 若想要sort来实现降序输出,则可以重写sort方法:
bool compare(int a, int b)
{
return a < b; //升序排列,如果改为return a>b,则为降序
}
int a[20] = {2, 4, 1, 23, 5, 76, 0, 43, 24, 65}, i;
for (i = 0; i < 20; i++)
cout << a[i] << endl;
sort(a, a + 20, compare);
#include
#include
#include
#include
using namespace std;
int main()
{
//顺序访问
vector<int>obj;
for(int i=0;i<10;i++)
{
obj.push_back(i);
}
cout<<"直接利用数组:";
for(int i=0;i<10;i++)//方法一
{
cout<<obj[i]<<" ";
}
cout<<endl;
cout<<"利用迭代器:" ;
//方法二,使用迭代器将容器中数据输出
vector<int>::iterator it;//声明一个迭代器,来访问vector容器,作用:遍历或者指向vector容器的元素
for(it=obj.begin();it!=obj.end();it++)
{
cout<<*it<<" ";
}
return 0;
}