STL-deque

9 篇文章 0 订阅

目录

1.包含头文件

2.deque的创建与初始化

3.deque访问元素

4.deque 大小及容量

5.添加、删除及修改元素 


1.包含头文件<deque>

#include<deque>

2.deque的创建与初始化

  • deque<T> dq:创建一个空的 deque
  • deque<T> dq (n):创建一个含有 n 个元素的 deque,元素为 T 的默认值
  • deque<T> dq {a0, a1, ..., ai}:创建一个元素为 a0,a1,...,ai 的 deque
  • deque<T> dq {begin, end}:用迭代器创建并初始化

deque相当于一个双端队列,可以在头部、尾部高效地插入元素

#include<iostream>
#include<array>
#include<deque>

using namespace std;

int main()
{
    deque<int> dq;
    deque<int> dq1 (7);
    deque<int> dq2 {1, 2, 3};

    array<int, 7> arr {1, 2, 3, 4, 5, 6, 7};
    deque<int> dq3 {arr.begin(), arr.end()};

    return 0;
}

3.deque访问元素

  • [ ] 下标访问,无边界检查
  • at 函数访问,有边界检查
#include<iostream>
#include<array>
#include<deque>

using namespace std;

int main()
{
    array<int, 7> arr {1, 2, 3, 4, 5, 6, 7};
    deque<int> dq3 {arr.begin(), arr.end()};
    dq3.at(3) = 111;
    dq3[4] = 222;
    for (int i : dq3)
        cout << i << endl;

    return 0;
}

/*输出
1
2
3
111
222
6
7
*/

4.deque 大小及容量

  • size():deque 当前的元素数目
  • resize(n):当 n > size(),尾部增加 T 的默认值至 n 个元素;当 n < size(),自尾部删除至 n 个元素
  • 没有 capacity()、reserve()
#include<iostream>
#include<deque>

using namespace std;

int main()
{
    deque<int> dq {222, 333, 444};  // size = 3
    dq.resize(2);  // 222 333; size = 2
    dq.resize(5);  // 222 333 0 0 0; size = 5
    return 0;
}

5.添加、删除及修改元素 

  • push_back():尾部增加元素
  • push_front():头部增加元素
  • pop_back():尾部删除元素
  • pop_front():头部增加元素
  • emplace_back():尾部增加元素,区别同 vector
  • emplace_front():头部增加元素,区别同 vector
  • emplace():插入元素,同 vector
  • insert():插入元素,使用同 vector
  • erase():删除 deque 元素,同 vector
  • clear():清空 deque,同 vector
  • assign():替换整个 deque 

部分实例如下,与 vector 类似的实例参考:STL-vector_Fujh-nk的博客-CSDN博客

#include<iostream>
#include<deque>

using namespace std;

int main()
{
    deque<int> dq {222, 333, 444};
    dq.push_back(555);  // 222 333 444 555
    dq.push_front(111);  // 111 222 333 444 555
    dq.pop_back();  // 111 222 333 444
    dq.pop_front();  // 222 333 444

    // 替换整个 deque, 同 dq = {1, 2, 3, 4}, 也可以使用迭代器
    dq.assign({1, 2, 3, 4});  // 1 2 3 4

    // 用多个相同元素替换整个 deque
    dq.assign(3, 7);  // 7 7 7

    return 0;
}

更多及参考网址:C++ vector插入元素(数据)详解

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值