C++序列容器包含以下6种:
1.vector:一种随机访问的数组类型,它提供了对数组元素的快速,随机访问,以及在序列尾部快速,随机的插入和删除操作,vector的大小可变。
2.deque:一种随机访问的数组类型,提供了在序列两端快速插入和删除操作的功能,大小可变。
3.list:不支持随机访问,插入和删除操作所花时间固定,因为每个元素有前后指针。
4.queue:队列,先进先出。
5.priority_queue
6.stack:先进后出。
代码演示:
1.vector:
初识化vector
#include<iostream>
#include<vector>
using namespace std;
int main(){
int x=0;
vector<int> intVector(10,1);//10个元素,每个元素均初识化为1
vector<int>::iterator iter;
for(iter=intVector.begin();iter!=intVector.end();iter++){
cout<<"Element#"<<x++<<":"<<*iter<<endl;
}
return 0;
}
给向量添加元素
#include<iostream>
#include<vector>
using namespace std;
int main(){
vector<char> charVector;
int x=0;
for(int i=0;i<10;i++){
charVector.push_back(65+i);
}
vector<char>::iterator iter;
for(iter=charVector.begin();iter!=charVector.end();iter++)
cout<<"Element#"<<x++<<":"<<*iter<<endl;
}
插入元素
#include<iostream>
#include<vector>
using namespace std;
int main(){
vector<char> charVector;
for(int i=0;i<10;i++)
charVector.push_back(65+i);
cout<<"original vector:";
vector<char>::iterator iter;
for(iter=charVector.begin();iter!=charVector.end();iter++)
cout<<*iter;
cout<<endl;
//将5个X插入到向量头部
vector<char>::iterator start=charVector.begin();
charVector.insert(start,5,'X');
cout<<"resultant vector:";
for(iter=charVector.begin();iter!=charVector.end();iter++)
cout<<*iter;
cout<<endl;
}
删除元素
#include<iostream>
#include<vector>
using namespace std;
int main(){
vector<char>charVector;
for(int i=0;i<10;i++)
charVector.push_back(65+i);
int j=charVector.size();
vector<char>::iterator iter;
for(;j>0;j--){
for(iter=charVector.begin();iter!=charVector.end();iter++)
cout<<*iter;
cout<<endl;
vector<char>::iterator start=charVector.begin();
charVector.erase(start);
}
}
deque双端队列类:类似于向量,不同点在于它是两端都很方便的放置和删除元素。
Stack实例
#include<iostream>
#include<stack>
using namespace std;
int main()
{
stack<int> intstack;
cout<<"values pushed onto stack:"<<endl;
for(int x=1;x<11;x++)
{
intstack.push(x*100);
cout<<x*100<<endl;
}
cout<<"values poped from stack"<<endl;
int size=intstack.size();
for(int x=0;x<size;x++)
{
cout<<intstack.top()<<endl;
intstack.pop();
}
return 0;
}
stack主要有4个函数,empty(),size(),top(),push(),pop().