C++STL之序列容器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Gary_god/article/details/77866517

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().

没有更多推荐了,返回首页