189 8069 5689

vector,deque,list相关操作

1、vector的基本操作

创新互联建站为您提适合企业的网站设计 让您的网站在搜索引擎具有高度排名,让您的网站具备超强的网络竞争力!结合企业自身,进行网站设计及把握,最后结合企业文化和具体宗旨等,才能创作出一份性化解决方案。从网站策划到成都网站建设、成都做网站, 我们的网页设计师为您提供的解决方案。

(1)、对动态数组元素的添加和删除、获取

代码如下:

#include
#include
using namespace std;

//数组元素的添加和删除、获取
int main(void){
    vector v1; 

    v1.push_back(1);
    v1.push_back(2);
    v1.push_back(3);

    cout<<"len:"< 0){ 
        cout<

(2)、vector的初始化

代码如下:

#include
#include
using namespace std;

void printV(vector &v){
    for(int i = 0; i < v.size(); i++){
        cout< v1;

    v1.push_back(1);
    v1.push_back(3);
    v1.push_back(5);
    v1.push_back(7);

    vector v2 = v1; //对象初始化
    vector v3(v1.begin(), v1.begin()+2); //对象初始化
/*
    //vector的遍历
    for(i =a 0; i < v1.size(); i++){
        v1[i] = i + 1;
    }
    int i;
    for(i = 0; i < v1.size(); i++){
        cout< v5(10); //前10个元素初始化为0;
    v5.push_back(100);
    v5.push_back(200);
    printV(v5);
    return 0;    
}

(3)、vector中迭代器的正向和反向遍历

代码如下:

#include
#include
using namespace std;

int main(void){
    vector v1(10); //初始化空间的值都为0;
    for(int i = 0; i < 10; i++){
        v1[i] = i+1;
    }   
//迭代器
//1(begin)、3、5 、(end) 当it = v1.end()的时候,说明这个容器已经遍历完了;
//end()的位置,应该是5的后面;
    //正向遍历
    vector::iterator it; 
    for(it = v1.begin(); it != v1.end(); it++){
        cout<<*it<<" ";
    }   
    cout<::reverse_iterator rit;
    for(rit = v1.rbegin(); rit != v1.rend(); rit++){
        cout<<*rit<<" ";
    }   
    cout<

(4)、vector中的元素删除操作

代码如下:

#include
#include
using namespace std;

void printV(vector &v){
    for(int i = 0; i < v.size(); i++){
        cout< v1(10);

    for(int i = 0; i < 10; i++){
        v1[i] = i + 1;
    }   
    //区间删除
    v1.erase(v1.begin(), v1.begin()+3); //删除开始的3个元素
    //指定(元素)位置删除
    v1.erase(v1.begin()); //在头部删除一个

    //根据元素的值
    v1[1] = 2;
    v1[3] = 2;

    vector::iterator it;
    for(it = v1.begin(); it != v1.end(); it++){
        if(*it == 2){
            v1.erase(it); //删除的是元素,参数是迭代器
        }
    }

    v1.insert(v1.begin(), 100);
    v1.insert(v1.end(), 200);
    printV(v1);
    return 0;
}

2、deque的基本操作

双端数组的基本操作;

代码如下:

#include
#include
#include
using namespace std;

void printD(deque &d){
    deque::iterator it; 
    for(it = d.begin(); it != d.end(); it++){
        cout<<*it<<" ";
    }   
    cout< d1; 
    d1.push_back(1);
    d1.push_back(3);
    d1.push_back(5);

    d1.push_front(-11);
    d1.push_front(-33);
    d1.push_front(-55);

    cout<<"头部元素:"<::iterator it;
    it = find(d1.begin(), d1.end(), -33);
    if(it != d1.end()){
        cout<<"-33数组的下标是:"<

3、stack的基本操作

代码如下:

#include
#include
using namespace std;

class Teacher{
    public:
        void printS(){
            cout<<"age :"< s;
    s.push(&t1);
    s.push(&t2);
    s.push(&t3);

    while(!s.empty()){
        Teacher *tmp = s.top();
        tmp->printS();
        s.pop();
    }

    return 0;
}

/*
int main(void){
    Teacher t1,t2,t3;

    t1.age = 31;
    t2.age = 32;
    t3.age = 33;

    stack s;
    s.push(t1);
    s.push(t2);
    s.push(t3);

    while(!s.empty()){
        Teacher tmp = s.top();
        tmp.printS();
        s.pop();    
    }

    return 0;
}
*/
/*
int main(void){
    stack s;

    //入栈
    for(int i = 0; i < 10; i++){
        s.push(i+1);
    }

    cout<

4、queue的基本操作

代码如下:

#include
#include
using namespace std;

class Teacher{
    public:
        int age;
        char name[25];
    public:
        void printQ(){
            cout<<"age :"< q;
    q.push(&q1);
    q.push(&q2);
    q.push(&q3);

    while(!q.empty()){
        Teacher *tmp;
        tmp = q.front(); //获取队列头的元素
        tmp->printQ();
        q.pop();
    }

    return 0;
}


/*
//队列中的基础数据类型,
int main(void){
    queue q;

    q.push(1);
    q.push(2);
    q.push(3);


    cout<<"对头元素:"<

5、priority_queue的基本操作

代码如下:

#include
#include
using namespace std;

int main(void){
    priority_queue p1; //默认的情况下:是最大优先级队列;
    priority_queue, less > p2; 
    priority_queue, greater > p3; //是最小的优先级队列

    p1.push(33);
    p1.push(11);
    p1.push(22);
    p1.push(77);
    p1.push(55);
    p1.push(99);

    cout<<"队头元素:"<

6、list的基本操作

(1)、list的遍历

代码如下:

#include
#include
using namespace std;

void printL(list &l){
    list::iterator it; 
    for(it = l.begin(); it != l.end(); it++){
        cout<<*it<<" ";
    }   
    cout<
素的位置;
int main(void){
    list l;

    cout<<"list的大小:"<::iterator it = l.begin();
    it++;
    it++;
    it++;
    l.insert(it, 100); //STL中的插入默认是前插;
    printL(l);


//1、list链表的节点的index是从0位置开始的
//2、insert方法都是默认的前插
    return 0;
}

(2)、list的删除

代码如下:

#include
#include
using namespace std;


void printL(list &l){
    list::iterator it;
    for(it = l.begin(); it != l.end(); it++){
        cout<<*it<<" ";
    }
    cout< l;

    for(int i = 0; i < 10; i++){
        l.push_back(i);
    }   

    list::iterator it1 = l.begin();
    list::iterator it2 = l.begin();
    it2++;
    it2++;
    it2++;

    l.erase(it1, it2); //删除是左闭右开的操作;[0, 3)
    printL(l);

    l.erase(l.begin());
    printL(l);

    l.insert(l.begin(), 100);
    l.insert(l.begin(), 100);
    l.insert(l.begin(), 100);
    l.insert(l.begin(), 100);
    l.insert(l.begin(), 100);
    printL(l);

    l.remove(100); //删除元素的方法,删除了所有值为100的元素;
    printL(l);

    return 0;
}

当前文章:vector,deque,list相关操作
文章出自:http://cdxtjz.com/article/gpspdo.html

其他资讯