c++【STL】入门
文章平均质量分 82
初步掌握stl相关容器知识
float_com
程序员小菜鸟一枚
展开
-
【STL】priority_queue 基础,应用与操作
/ 定义一个存储 int 类型的优先级队列(默认最大堆)默认情况下,priority_queue 是一个最大堆,但可以通过自定义比较器将其变为最小堆。通过指定比较函数,可以改变元素的排列顺序。priority_queue 是C++ STL中一个强大的容器适配器,**用于处理需要频繁访问优先级最高(或最低)元素的场景。**通过了解其基本操作、自定义排序规则以及底层实现机制,开发者可以更加灵活地应用它来解决各类优先级相关的问题。不过,也要注意其一些限制,如无法直接遍历和修改元素优先级。原创 2024-09-19 20:56:21 · 891 阅读 · 1 评论 -
【STL】pair 与 map:基础、操作与应用
pair 是 C++ 标准库中的一种数据结构,它允许我们将两个不同类型的数据组合成一对。它的典型用法是用来返回两个相关联的值,例如姓名和电话号码。每个 pair 包含两个值,这两个值分别可以通过 .first 和 .second 访问。map 是 C++ 中的一种关联容器,通常用于存储键值对。每个元素都是 pair,其中第一个元素为 键(key),第二个元素为 值(value)。map 容器的特点是:所有元素会根据 键 的大小自动排序,并且 键值唯一。如果需要允许重复键,可以使用 multimap。原创 2024-09-17 17:07:20 · 1363 阅读 · 0 评论 -
【STL】 set 与 multiset:基础、操作与应用
如果需要按自定义顺序排序 set 中的元素,可以通过传入自定义的比较器来改变排序方式。例如,可以使用 greater 来实现降序排列,或者提供自定义的比较函数。print2(s);// 输出:30 20 10。原创 2024-09-16 21:58:09 · 1716 阅读 · 0 评论 -
【STL】string 基础,应用与操作
STL(标准模板库)中的string容器是C++标准库提供的用于处理和操作字符串的类,位于头文件中。std::string提供了比传统的C风格字符串(字符数组)更方便和安全的功能,具有动态内存管理、丰富的操作函数和良好的兼容性。std::string可以自动调整其大小,允许存储任意长度的字符串。它会根据需要分配内存,并在需要时扩展,不需要程序员手动管理内存。这种特性大大降低了内存管理的复杂性,避免了手动管理C风格字符串可能导致的缓冲区溢出问题。// 自动扩展内存以存储更长的字符串。原创 2024-09-19 20:27:31 · 1283 阅读 · 0 评论 -
【STL】stack,deque,queue 基础,应用与操作
stack(栈)栈是一种后进先出(LIFO, Last In First Out)的数据结构,意味着最后插入的数据最先被移除。C++ 中的栈是通过容器适配器实现的,底层默认使用 deque(双端队列)来实现,也可以选择 vector 或 list 作为底层容器。数据结构:后进先出(LIFO,Last In First Out),意味着最后插入的元素最先被移除。底层实现:stack 是一个容器适配器,默认底层使用 deque 实现,可以替换为 vector 或 list。原创 2024-09-19 16:33:55 · 1184 阅读 · 0 评论 -
【STL】vector 基础,应用与操作
vector 是一种动态数组,它能够根据需要自动调整自身的大小。它允许快速随机访问,并且能在末尾进行高效的插入和删除操作。支持随机访问,时间复杂度为 O(1)。动态分配内存,自动扩展存储空间。插入和删除操作在末尾处效率最高。for_each();创建临时 vector:创建一个新的临时 vector,它仅分配了与 vec.size() 相同的内存(即刚好能存储当前的元素),而不保留多余的空间。swap() 交换内部结构。原创 2024-09-19 11:15:30 · 1233 阅读 · 3 评论 -
【C++知识扫盲】-----初识迭代器
迭代器是一种抽象的指针类型,它使得你可以遍历容器中的元素而不需要知道容器的具体实现细节。迭代器可以用来访问容器中的元素、移动位置、比较位置等。原创 2024-09-14 22:14:17 · 272 阅读 · 0 评论 -
【C++知识扫盲】------C++ 遍历方法与 auto 关键字
传统 for 循环:适用于有索引的容器。range-based for 循环:简洁且适用于所有标准容器。迭代器遍历:适用于需要灵活控制的遍历。原创 2024-09-14 21:02:00 · 509 阅读 · 0 评论 -
【C++知识扫盲】------C++ 中的引用入门
引用本质上是某个变量的别名。在此例中,print 函数通过常量引用避免拷贝 std::string,但同时保证字符串不会被修改。注意:不要返回局部变量的引用,因为局部变量在函数返回后被销毁,引用将指向无效内存,导致未定义行为。在此例中,getMax 函数返回两个参数中较大值的引用,允许我们修改这个值。在这个例子中,swap 函数使用引用交换两个变量的值,而无需创建副本。常量引用常用于函数参数传递,保证传入的对象不会被修改,同时避免拷贝。引用在使用时不需要解引用,而指针需要使用 * 来访问指针指向的值。原创 2024-09-14 21:01:05 · 497 阅读 · 0 评论 -
【C++知识扫盲】------初识命名空间
是用于访问 C++ 标准库符号的前缀,避免命名冲突。虽简化了代码,但在复杂项目中可能引发命名冲突。可以选择只引入特定符号,以在代码简洁和命名空间安全之间取得平衡。原创 2024-09-16 14:38:41 · 198 阅读 · 0 评论
分享