文章目录 一、 stack 堆栈容器简介 1、stack 堆栈容器引入 2、stack 堆栈容器特点 3、stack 堆栈容器与 deque 双端数组容器对比 二、 代码示例 - stack 堆栈容器简单示例...1、代码示例 2、执行结果 一、 stack 堆栈容器简介 1、stack 堆栈容器引入 C++ 语言中的 STL 标准模板库 中的 stack 堆栈容器 , 是一个 后进先出 ( LIFO , Last...堆栈容器 是在 deque 双端数组 的基础上 , 屏蔽了部分功能 实现的 ; deque 功能比 stack 功能要强大一些 ; 2、stack 堆栈容器特点 stack 堆栈容器特点 : 后进先出...可以保证 在出现异常时 , 数据完整 ; 3、stack 堆栈容器与 deque 双端数组容器对比 stack 堆栈容器与 deque 双端数组容器对比 : 容器特点 : stack 堆栈容器 是一种后进先出...、代码示例 在下面的代码中 : 首先 , 创建了 stack 堆栈容器对象 , 容器中存储 int 类型对象 ; // 创建 stack 堆栈容器对象 std::stack s
容器嵌套容器 #include using namespace std; #include //容器嵌套容器 void test() { //大容器 vector...> big; //大容器里面包含三个小容器 vector v1; vector v2; vector v3; vector...(i + 3); v4.push_back(i + 4); } //给大容器赋值 big.push_back(v1); big.push_back(v2); big.push_back(v3...= big.end(); it++) { //(*it)-----> 容器 vector //先用外层循环遍历每个小容器v1,v2,v3,v4 for (vector:...= (*it).end(); jt++) { //(*jt)---->int //内层循环遍历小容器中每个元素 cout <<*jt << " "; } cout <<
文章目录 一、 stack 堆栈容器常用 api 简介 1、栈顶插入元素 - stack#push 函数 2、栈顶构造元素 - stack#emplace 函数 3、获取栈顶元素 - stack#top...函数 4、获取栈顶元素 - stack#pop 函数 5、获取栈顶元素 - stack#empty 函数 二、 代码示例 1、代码示例 2、执行结果 一、 stack 堆栈容器常用 api 简介 1、...栈顶插入元素 - stack#push 函数 调用 stack 容器的 push 成员函数 , 可以在 堆栈容器的 栈顶插入一个元素 ; stack#push 函数原型如下 : void push(const...; 特别注意 : stack 堆栈容器 只能在 栈顶进行插入和删除元素的操作 , 不支持在 堆栈的 栈底 或 中部的位置 进行插入和删除操作 ; 2、栈顶构造元素 - stack#emplace 函数...只能在 栈顶进行插入和删除元素的操作 , 不支持在 堆栈的 栈底 或 中部的位置 进行插入和删除操作 ; 3、获取栈顶元素 - stack#top 函数 调用 stack 容器的 top 成员函数 可以
在C++标准模板库(STL)中,容器是非常重要的工具。容器可以帮助我们管理一组对象,并且提供了各种操作这些对象的方法。...顺序容器(Sequential Containers)是 C++ 标准库中的一类容器,它们按照元素插入的顺序来存储元素,并且可以通过元素的位置来访问它们。...本文详细介绍 C++ 中的顺序容器,包括 vector、deque、list、forward_list 和 array,并提供相应的代码示例。...以下是 C++ 标准库中常见的顺序容器: 1.1 vector vector 是最常用的顺序容器,它类似于动态数组。vector 可以自动调整大小以容纳更多的元素,并且支持随机访问。...A:array提供边界检查(at()方法)、标准容器接口和自动内存管理,比原生数组更安全易用 十、总结 本文详细介绍了 C++ 中的顺序容器,包括 vector、deque、list、forward_list
什么是容器 首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。...在现在几乎所有的面向对象的语言中也都伴随着一个容器集,在C++ 中,就是标准模板库(STL )。 和其它语言不一样,C++ 中处理容器是采用基于模板的方式。...标准C++ 库中的容器提供了多种数据结构,这些数据结构可以与标准算法一起很好的工作,这为我们的软件开发提供了良好的支持!...这在下面具体的容器类中可以说明这一点。 容器适配器 是一个比较抽象的概念, C++的解释是:适配器是使一事物的行为类似于另一事物的行为的一种机制。...那么你可以把它理解为容器的容器,它实质还是一个容器,只是他不依赖于具体的标准容器类型,可以理解是容器的模版。
C++中的容器类对比起其它语言,无论是《【Python】容器类》(点击打开链接),还是《【Java】Java中的Collections类——Java中升级版的数据结构》(点击打开链接)的容器类都没有C+...且不说C++像Java一样,不能如同Python与php的数组,天生就是可变,不定长,越界就出现问题。...C++中的容器,虽然与Java一样同样有List与Map,但是,其提供的封装方法非常少,甚至连一些简单的、最常用的增删改查都要自己去实现。...下面,说明一下C++中几个常见的容器,首先是Vector,这种东西才是真正可以媲美Java的ArrayList,C++中虽然有List,但是在List,如果要寻找其中的某一个元素非常复杂,一旦要遍历List...begin()返回指向容器第一个元素的迭代器 end()返回指向容器最后一个元素的迭代器 最后,要介绍的是C++中map容器的基本用法,也就是很常见的key-value对容器。
文章目录 一、 vector 容器 初始化 1、vector 容器 初始化 2、使用 std::initializer_list 初始化列表 初始化 vector 容器 3、代码示例 - vector...C++ 标准模板库 ( Standard Template Library , STL ) 中的一个动态数组 容器 , 该容器有如下初始化方式 : 默认初始化 : 创建一个空的 vector 容器 ;...默认情况下容器是空的 ; // 创建一个空的 vector 容器 , 元素类型是 int 类型 vector vec; 使用 std::initializer_list 初始化列表 : 创建...vec2 容器 vector vec2(vec1.begin(), vec1.end()); 2、使用 std::initializer_list 初始化列表 初始化 vector 容器 在之前的有参构造函数中...namespace std; #include "vector" // 自定义类 class Student{}; int main() { // 创建一个 vector 容器 , 使用初始化列表进行初始化
文章目录 一、mulset 容器 1、std::multiset 容器简介 2、代码示例 - multiset 容器 二、std::multiset 容器 常用操作 api 简介 1、常用 api 简介...2、代码示例 - multiset 容器常用操作 一、mulset 容器 1、std::multiset 容器简介 在 C++ 语言 的 标准模板库 ( STL , Standard Template...容器 也不支持 使用 下标位置 直接访问元素 ; 使用 std::multiset 容器前 , 需要 导入 set 头文件 ; #include "set" 与 set 容器类似的 容器还有 multiset...二、std::multiset 容器 常用操作 api 简介 1、常用 api 简介 std::multiset 容器 常用操作 : std::multiset 容器 与 std::set 容器 操作...容器中的所有元素 ; find() : 在 multiset 容器 中查找一个特定元素 ; count() : 返回 multiset 容器 中 特定元素的数量 , 该函数 set 容器中只能返回 0
文章目录 一、std::map 容器 1、std::map 容器简介 2、std::map 容器排序规则 3、std::map 容器底层实现 二、代码示例 - std::map 容器 1、代码示例 2、...执行结果 一、std::map 容器 1、std::map 容器简介 std::map 容器 是 C++ 语言 标准模板库 ( STL , Standard Template Library ) 提供的...的一个 " 关联容器 " ; std::map 关联容器 , 提供 一对一数据处理能力 , 容器中的元素自动按键 Key 排序 , 键 Key 和 值 Value 是 一一对应 的 ; 第一个 键 Key...键 Key 对 元素 进行自动排序 的 ; 每个键的值在 std::map 容器中都是 唯一的 , 键值不允许重复 ; 在 std::map 容器 中 , 可以 根据 键 Key 快速检索 容器中的...::map 容器 底层使用 红黑树 实现 , 这是 平衡二叉树 的变体 数据结构 ; std::map 容器 与 std::set 容器 底层实现相同 , 区别是 map 容器中存储的是键值对 , set
一、STL 各容器特点 1、std::vector 单端数组容器 std::vector 动态数组容器特点 : 底层结构 : 底层由 动态数组 实现 , 特点是 存储空间 连续 ; 访问遍历 : 支持...; 2、std::deque 双端队列容器 std::deque 双端队列容器特点 : 底层结构 : 底层由 双向队列 实现 , 特点是 存储空间 连续 ; 访问遍历 : 支持 随机访问迭代器 , 其性能比...; 3、std::list 双向链表容器 std::list 双向列表容器特点 : 底层结构 : 底层由 双向链表 实现 , 特点是 存储空间 不连续 ; 访问遍历 : 不支持 随机访问迭代器 , 只能通过迭代器进行访问...仿函数 , 即 容器 不允许重复的键 , multimap 多重映射容器允许重复的键 ; 使用场景 : 需要 有序 键值对 且...元素 不重复 的场景 ; std::map 映射容器 与 std::set 集合容器 的区别是 map 容器存储的是 键值对 元素 , 是 pair 对象 , set 容器 存储的是 单纯的 键 单个元素
C++在STL中加入了string类型,对字符串常用的需求功能进行封装,使得操作更加方便,且不易出错。...string的定义 仅定义:string str; 定义并初始化:string str = "abcd"; string容器内元素的访问 通过下标访问(直接像字符数组那样去访问string即可) 通过迭代器...(类似指针)访问 在有些函数如insert()和erase()则要求迭代器为参数,因此容器此时需要通过迭代器访问。...cout << str6.replace(str8.begin(), str8.begin()+2, str8) << endl; } 版权所有:可定博客 © WNAG.COM.CN 本文标题:《C+...+ STL容器之string容器快速入门》 本文链接:https://wnag.com.cn/281.html 特别声明:除特别标注,本站文章均为原创,本站文章原则上禁止转载,如确实要转载,请电联:wangyeuuu
因此引进map容器。 map容器可以将任何类型(包括STL容器)映射到任何类型(包括STL容器)。...注意:(1)若是字符串映射到整型,则必须用string而不能用char数组,如map mp; (2)若键也是STL容器(STL容器嵌套),则需要在>>后加上空格(C++11之前标准的编译会将其视为移位操作...即map, int> mp;,此处是将一个set容器映射到字符串。...STL容器的使用方式不同。...版权所有:可定博客 © WNAG.COM.CN 本文标题:《C++ STL容器之map容器快速入门》 本文链接:https://wnag.com.cn/298.html 特别声明:除特别标注,本站文章均为原创
在 C++ 标准库中,map 是一种高效的关联容器,基于红黑树(Red-Black Tree)实现。它能够将键值对(Key-Value)按照特定顺序存储,支持快速查找、插入和删除操作。...一、map容器概述 1.1 基本概念 map是C++ STL中的一种关联容器,用于存储键值对。每个键(key)必须是唯一的,而值(value)可以重复。...1.4 关联容器体系定位 C++ STL容器分为序列容器和关联容器两大类。map作为关联容器的核心类型,提供基于键值对的快速查找能力,与unordered_map形成有序/无序的互补结构。...3.4 插入元素 方式一:insert 方法 // 插入键值对 scores.insert(std::pair(1003, "Charlie")); // 插入初始化列表...C++ STL中一种非常重要的关联容器,它以键值对的形式存储数据,并根据键自动排序。
vector的定义 vector name; 其中type可为任何基本类型(如int等)、结构体和STL标准容器。...注意:(1)若type也是STL容器(STL容器嵌套),则需要在>>后加上空格(C++11之前标准的编译会将其视为移位操作)。即vector> name;。...vector数组的定义 vector vi[100]; 这样vi[0]到vi[100]中每一个vector都是一个vector容器。...vector容器内元素的访问 (1)通过下标访问(从0到name.size()-1进行访问,直接访问name[index]即可。...2 用邻接表存储图 版权所有:可定博客 © WNAG.COM.CN 本文标题:《C++ STL容器之vector容器快速入门》 本文链接:https://wnag.com.cn/276.html 特别声明
在 C++ 标准库的关联容器中,multimap 是一种特殊的存在。它允许键(Key)重复,能够存储多个具有相同键的键值对,同时保持键的有序性。...对比其他容器: map:键唯一,适合一对一映射。 unordered_multimap:基于哈希表,无序但平均O(1)查找,适合高频查询场景。 vector/list:无序容器,需手动维护排序。...; ++it) { std::cout second << std::endl; } 4.3 性能优化建议 批量插入:使用 insert 插入迭代器范围或初始化列表...reserve 预分配空间(虽然红黑树无容量概念,但可减少重新分配次数) 避免频繁修改键:键是 const 类型,修改键需先删除旧元素再插入新元素 4.4 与 map 的协同使用 当需要 “键 - 值列表...} return 0; } 七、总结与最佳实践 7.1 使用场景总结 键可重复且需有序:如日志系统、索引系统、分类系统 简化 “一对多” 操作:避免手动管理 map + vector 的嵌套结构
set的定义 set name; 其中type可为任何基本类型(如int等)、结构体和STL标准容器。...注意:(1)若type也是STL容器(STL容器嵌套),则需要在>>后加上空格(C++11之前标准的编译会将其视为移位操作)。即set> name;。...set数组的定义 set st[100]; 这样st[0]到st[100]中每一个set都是一个set容器。...set容器内元素的访问 和vector容器不同的是,set容器仅能通过迭代器(类似指针)访问 定义:set::iterator it; 代码: #include #...版权所有:可定博客 © WNAG.COM.CN 本文标题:《C++ STL容器之set容器快速入门》 本文链接:https://wnag.com.cn/279.html 特别声明:除特别标注,本站文章均为原创
在C++标准模板库(STL)中,关联容器(Associative Containers)是一类非常重要的数据结构,它们通过键值(Key-Value)对的形式来存储元素,并且提供了基于键的快速查找、插入和删除操作...在关联容器中,multiset是一种允许重复元素的有序容器,它基于红黑树实现,能够高效地进行元素的插入、删除和查找。它与 set 非常相似,但允许存储多个具有相同键的元素。...一、multiset 概述 1.1 定义与特性 multiset是C++ STL中的一个关联容器,用于存储一组有序的元素,允许存在重复值。...; // 创建一个空的multiset,元素类型为int multiset mset2; // 创建一个空的multiset,元素类型为string // 使用初始化列表创建...七、总结 multiset 是 C++ 标准库中一个非常有用的关联容器,它允许存储多个相同的元素,并且元素按照一定的顺序排列。
在 C++ 编程中,容器是非常重要的工具,它可以帮助我们高效地管理和操作数据。关联容器是 C++ 标准模板库(STL)中的一类特殊容器,它们通过键(key)来存储和访问元素。...set 作为关联容器的一种,在很多场景下都有着广泛的应用。本文将全面深入地介绍 set 类型,包括其基本概念、底层实现、常用操作、高级应用以及与其他容器的比较等内容。...s.erase(it); // 迭代器失效,不可继续使用 4.5 性能优化技巧 批量插入优化: std::set s; s.insert({1, 2, 3, 4, 5}); // C++11初始化列表优化...掌握set的特性和正确使用方式,将显著提升C++编程能力。 九、参考资料 《C++ Primer(第 5 版)》这本书是 C++ 领域的经典之作,对 C++ 的基础语法和高级特性都有深入讲解。...C++ 官方标准文档:C++ 标准文档是最权威的参考资料,可以查阅最新的 C++ 标准(如 C++11、C++14、C++17、C++20 等)文档。
在 C++ 编程中,关联容器(Associative Containers)是用于存储键值对(Key-Value Pairs)的高效数据结构。...= std::make_pair(20, "banana"); // 拷贝初始化 std::pair p3 = p1; // 列表初始化...; idMap.insert({1001, "John"}); // 列表初始化 idMap[1002] = "Jane"; 3.3 set 容器 set存储唯一键,内部使用pair实现: #include...std::pair, ComparePair> sortedSet; sortedSet.insert({1, 10}); sortedSet.insert({2, 5}); 4.2 嵌套...九、参考资料 《C++ Primer(第 5 版)》这本书是 C++ 领域的经典之作,对 C++ 的基础语法和高级特性都有深入讲解。
一、multimap 容器简介 1、容器简介 multimap 容器 中 可以 存储 多个具有 相同 键 Key 的 键值对 pair 对组元素 ; 其 键 Key 是不是唯一的 , 多个相同的 键 排序时...先后排列在一起 ; multimap 容器中的元素会 自动排序 , 默认情况下 , 使用 less 仿函数 排序规则 对 键 Key 进行比较排序 , 也可以自定义排序规则 ; 容器示例 : 下面的...与 map 容器的 主要区别是 : multimap 容器中的 键 Key 不需要是唯一的 , 在容器中可以有多个 相同的 键 ; 也可以理解为 multimap 的 一个 键 Key 可以对应多个...二、multimap 容器常用操作 api 1、插入元素 multimap 容器插入元素 只能使用 insert 函数插入 , 不能使用 数组下标 方式 插入元素 ; 使用下面的 insert 函数插入元素...遍历结束 遍历容器 : 遍历结束 请按任意键继续. . .