一.vector
头文件# include<vector>
构建函数5种:
1.vector<type>test;
test.push_back(element);
例:vector<int>test;
test.push_back(1);
2.vector<type>test(size);
例:vector<int>test(10);
for(int i=0;i<10;i++)
test.push_back(i);
3.vector<type>test(size,element);
例:vector<int>test(10,10);
4.vector<type>test(a,a+n);
例:int a[5]={1,2,3,4,5};
vector<int>test(a,a+5);
5.vector<type>test<const vector&>
复制构造函数
二、vector具有的操作:
1.增加元素
《1》void push_back(element);//element可以是简单类型,也可以是自定义类
例:test.push_back(1);//在尾部添加一个元素
《2》iterator insert(iterator it,type x);
返回类型为:iterator,在迭代器it之前添加一个元素
《3》void insert(iterator it,int n,type x);
//在迭代器it之前添加n个x
《4》void insert(iterator it,const_iterator first,const_iterator last);
//在迭代器it之前插入另一个相同类型的向量在区间[first,last)内的元素
2.删除函数
《1》iterator erase(iterator it);//删除迭代器it指向的元素
例:vector<int>test;
test.push_back(1);
test.push_back(2);
test.push_back(3);
test.push_back(4);
test.erase(test.begin()+2);//删除第三个元素
《2》iterator erase(iterator first,iterator last);//删除区间[first,last)内的元素
例:vector<int>test;
test.push_back(1);
test.push_back(2);
test.push_back(3);
test.push_back(4);
test.erase(test.begin(),test.begin+2);//删除0到2个元素
《3》void pop_back();//删除向量中最后一个元素
《4》void clear();//删除向量中所有元素
3判断是否为空
bool empty() const;//true为空
4判断向量大小
《1》int size() const;
例:vector<int>test;
test.push_back(1);
test.push_back(2);
test.push_back(3);
test.push_back(4);
int size=test.size();//获得向量空间大小
《2》int capacity const;//返回当前向量所能容纳的最大元素值;
《3》int max_size() const;//返回最大可允许的vector的数量
5.遍历函数
《1》reference at(int pos);//获得破损位置元素的引用
例:vector<int>test;
test.push_back(1);
test.push_back(2);
test.push_back(3);
test.push_back(4);
for(int i=0;i<4;i++)
{
int &nValue=test.at(i);
cout<<nValue<<"/t";
}
《2》reference front();//返回首元素的引用
《3》reference back();//返回尾元素的引用
例:vector<int>test;
test.push_back(1);
test.push_back(2);
test.push_back(3);
test.push_back(4);
int &avalue=test.front(); // 获得首元素的引用
int &bvalue=test.back();//获得尾元素的引用
《4》iterator begin();//返回向量头指针
《5》iterator end();返回向量尾指针后面的指针,end()-1指向最后一个元素
《6》reverse_iterator rbegin();//反向迭代器,最后一个元素指针
《7》reverse_iterator rend();//反响迭代器,第一个元素之前的指针
6.交换类函数
《1》void swap(vector&);//交换两个同类向量数据
《2》void assign(int n,const type x);//向量中第n个元素设为x
《3》void assign(const_iterstor first,const_iterator last);//向量中[first,last)之间的元素设置为当前向量中的元素
整理例子:
# include<stdio.h>
#include<iostream>
#include<vector>
using namespace std;
int main(int argc,char *argv[])
{
vector<int>test;
for(int i=0;i<10;i++)
test.push_back(i);
int size=test.size();
//下面是各种方式的输出,三种输出方式也就意味着有三种改变向量元素值得方法
int j=0;
for(j=0;j<size;j++)
cout<<test[j]<<"\t";//类似于数组的输出
cout<<endl;
for(j=0;j<size;j++)
{
int &value=test.at(j);
cout<<value<<"\t";//引用的输出
}
cout<<endl;
vector<int>::iterator it=test.begin();
while(it!=test.end()){
cout<<*it<<"\t";//迭代器的输出
it++;
}
cout<<endl;
return 0;
}