STL deque 代码

Posted tianmeng-hyl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STL deque 代码相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include <deque>

using namespace std;

int main(int argc, char* argv[])
{
    deque<int> deq;
    for (int i = 0; i<6; i++)
    {
        deq.push_back(i);
    }

    cout << deq.size() << endl; // 输出:6
    cout << deq.max_size() << endl; // 输出:1073741823
    deq.resize(0); // 更改元素大小
    cout << deq.size() << endl; // 输出:0
    if (deq.empty())
        cout << "元素为空" << endl; // 输出:元素为空

    return 0;
}
#include <iostream>
#include <deque>

using namespace std;

int main(int argc, char* argv[])
{
    deque<int> deq;
    for (int i = 0; i < 8; i++)
        deq.push_back(i);

    // 头部删除元素
    deq.pop_front();
    // 末尾删除元素
    deq.pop_back();
    // 任意位置删除一个元素
    deque<int>::iterator it = deq.begin();
    deq.erase(it);
    // 删除[first,last]之间的元素
    deq.erase(deq.begin(), deq.begin()+1);

    // 遍历显示
    for (it = deq.begin(); it != deq.end(); it++)
        cout << *it << " ";
    cout << endl;

    // 清空所有元素
    deq.clear();

    // 遍历显示
    for (it = deq.begin(); it != deq.end(); it++)
        cout << *it << " "; // 输出:3 4 5 6
    cout << endl;

    return 0;
}
#include <iostream>
#include <deque>

using namespace std;

int main(int argc, char* argv[])
{
    deque<int> deq;
    for (int i = 0; i < 6; i++)
        deq.push_back(i);

    // 下标访问
    cout << deq[0] << endl; // 输出:0
    // at方法访问
    cout << deq.at(0) << endl; // 输出:0
    // 访问第一个元素
    cout << deq.front() << endl; // 输出:0
    // 访问最后一个元素
    cout << deq.back() << endl; // 输出:5

    return 0;
}
#include <iostream>
#include <deque>

using namespace std;

int main(int argc, char* argv[])
{
    // 多个元素赋值
    deque<int> deq;
    deq.assign(3, 1);
    deque<int> deq2;
    deq2.assign(3, 2);

    // 交换两个容器的元素
    deq.swap(deq2);

    // 遍历显示
    cout << "deq: ";
    for (int i = 0; i < deq.size(); i++)
        cout << deq[i] << " "; // 输出:2 2 2
    cout << endl;

    // 遍历显示
    cout << "deq2: ";
    for (int i = 0; i < deq2.size(); i++)
        cout << deq2[i] << " "; // 输出:1 1 1
    cout << endl;

    return 0;
}
#include <algorithm>
#include <deque>
#include<iostream>
using namespace std;
int main()
{
    deque<int> a;
    deque<int>::iterator it;
    for(it=a.begin();it<=a.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    a.clear();
    for(int i=1;i<=10;i++)
    {
        a.push_back(i);
    }
    for(it=a.begin();it<a.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    reverse(a.begin(), a.end());
    for(it=a.begin();it<a.end();it++)
    {
        cout<<*it<<" ";
    }
 } 
#include <iostream>
#include <deque>

using namespace std;

int main(int argc, char* argv[])
{
    deque<int> deq;
    deq.push_back(1);
    deq.push_back(2);
    deq.push_back(3);

    cout << *(deq.begin()) << endl; // 输出:1
    cout << *(--deq.end()) << endl; // 输出:3
    cout << *(deq.cbegin()) << endl; // 输出:1
    cout << *(--deq.cend()) << endl; // 输出:3
    cout << *(deq.rbegin()) << endl; // 输出:3
    cout << *(--deq.rend()) << endl; // 输出:1
    cout << endl;

    return 0;
}
#include <algorithm>
sort(deq.begin(), deq.end()); // 采用的是从小到大的排序

// 如果想从大到小排序,可以采用先排序后反转的方式,也可以采用下面方法:
// 自定义从大到小的比较器,用来改变排序方式
bool Comp(const int& a, const int& b) {
    return a > b;
}

sort(deq.begin(), deq.end(), Comp);
deque<int>::iterator it;
for (it = deq.begin(); it != deq.end(); it++)
    cout << *it << endl;
// 或者
for (int i = 0; i < deq.size(); i++) {
    cout << deq.at(i) << endl;
}

以上是关于STL deque 代码的主要内容,如果未能解决你的问题,请参考以下文章

STL deque 代码

STL源代码剖析 容器 stl_deque.h

STL之deque

[C++STL]deque容器用法介绍

C++源码剖析——deque

C++ 提高教程 STL deque容器-赋值操作