deque双端队列

// deque 线性
#include<iostream>
#include<deque>

using namespace std;
void main()
{
    deque<int> myd = {1,2,3,4,5,6};
    myd.push_back(13);// 尾部插入
    myd.push_front(0);// 前端插入
    myd.insert(myd.begin()+3,19);// 中间插入
    for(auto i : myd)
    {
        cout << i << endl;
    }
    
    // 逆序,反向迭代器
    for(auto rb = myd.rbegin()+2,re = myd.rend();rb!=re;rb++)
    {
        cout << *rb << endl;
    }

    myd.pop_front();// 弹出头部数据
    myd.pop_back();// 删除尾部数据
    myd.clear();// 删除全部

    for(int i = 0;i <myd.size();i++)
    {
        cout << myd[i] << endl;
    }
    
    // +4 可以 按照线性来访问 deque内部是线性的分块结构
    for(auto ib = myd.begin()+4,ie = myd.end();ib!=ie;ib++)
    {
        cout << *ib << endl;
    }



    cin.get();
}

//------------------------------------------------------------------------


void main()
{
    deque<int> myd1 = {1,2,3,4,5,6};

    deque<int> myd2 = {11,22,33,44,55,66,77};
    
    cout << "deque最大容量" << myd1.max_size() << endl;
    cout << "当前deque容量" << myd1.size() << endl;
    cout << "deque第一个" << myd1.front() << endl;
    cout << "deque最后一个" << myd1.back() << endl;
    cout << "deque是否为空" << myd1.empty() << endl;// 为0 不为空

    myd1.swap(myd2);// 整体交换

    for(auto i : myd1)
    {
        cout << i << endl;
    }

    for(auto i : myd2)
    {
        cout << i << endl;
    }

    cin.get();

}

 

posted on 2015-06-14 10:10  Dragon-wuxl  阅读(128)  评论(0)    收藏  举报

导航