C++ deque使用、创建及初始化详解
C++ 使用 详解 创建 初始化 deque
2023-06-13 09:11:55 时间
deque T ,一个定义在 deque 头文件中的容器模板,可以生成包含 T 类型元素的容器,它以双端队列的形式组织元素。可以在容器的头部和尾部高效地添加或删除对象,这是它相对于 vector 容器的优势。当需要这种功能时,可以选择这种类型的容器。
图 1 deque容器示例
无论何时,当应用包含先入先出的事务处理时,都应该使用 deque 容器。处理数据库事务或模拟一家超市的结账队列,像这两种应用都可以充分利用 deque 容器。
生成 deque 容器如果用默认的构造函数生成 deque 容器,容器中没有任何元素,因此添加第一个元素,就会导致内存的分配:
std::deque int a_deque; // A deque container with no elements
可以生成给定元素个数的 deque 容器,这一点和 vector 容器在本质上相同:
std::deque int my_deque(10); // A deque container with 10 elements
如图 1 所示,有一个存储 int 型元素、名为 my_deque 的 deque 容器。在这个容器中,保存了一些奇数元素:
图 1 deque容器示例
当生成特定元素个数的 deque 时,每个元素保存的都是这种元素类型的默认值,因此前面定义的 my_deque 的所有元素的初始值都是 0。如果生成一个具有指定元素个数的 deque,每一个元素都会被构造函数 string() 初始化。
也可以用初始化列表来生成 deque 容器:
std:: deque std:: string words { one , none , some , all , none , most , many };
这个容器将会有 7 个字符串元素,它们都是用初始化列表中的字符生成的。当然,也可以将初始化列表中的对象依次指定为 string( one )、string( none ) 等。
deque 容器也有拷贝构造函数,可以生成现有容器的副本:
std::deque std::string words_copy { words };// Makes a copy of the words container
当生成一个 deque 容器时,也可以用由两个迭代器标识的一段元素来初始化它:
std::deque std::string words_part { std::begin(words),std::begin(words) + 5 };
这个容器有 5 个元素,它们和 words 容器的前 5 个元素相等。当然,作为初始值的一段元素,可以来自任何种类的容器,不需要一定是 deque。deque 提供了随机访问迭代器,所以能够以和 vector 相同的方式,从 deque 容器中获取 const 迭代器、non-const 迭代器、反向迭代器。
21678.html
相关文章
- C++学习——c++逗号操作符说明(附加全部运算符优先级)
- 腾讯云COS C++ SDK使用记录
- C++ XML 库 TinyXML2 的基本使用
- C++系列笔记(十)
- c++语言截取字符串,详解C++ string常用截取字符串方法
- 使用c++SFML制作月圆之夜总集篇[通俗易懂]
- leetcode:92. 反转链表 II(C++)
- C++ 条件变量使用详解
- C++ 中的基本输入u002F输出
- c++的链表-C++链表
- C/C++ 使用Socket模拟远程CMD
- C++ DLL 工程创建与使用
- 使用 c++20 协程与 io_uring 实现高性能 web 服务器 part1:一个最简单的 echo server
- C++STL中map容器的说明和使用技巧(杂谈)详解编程语言
- C++STL中set的使用策略(详解)编程语言
- C++中Cstring使用小结详解编程语言
- C++虚析构函数详解
- C++ multimap(STL multimap)的使用详解
- C++ partition_copy(STL partition_copy)算法使用详解
- C++ partition_point(STL partition_point)算法使用详解
- C++ if语句嵌套使用方法详解
- c++尽量不要使用#define而是用const、enum、inline替换。
- 深入分析C++中deque的使用
- c++中const的使用详解
- 基于c++中的默认拷贝函数的使用详解
- 基于C++map中key使用指针问题的详解
- 基于C++类型重定义的使用详解
- 解析使用C++编写无错代码的方法技巧
- C++实现数组的排序/插入重新排序/以及逆置操作详解
- C++中sprintf使用的方法与printf的区别分析