深入学习C++ STL unordered_map容器的迭代器 前面我们基本了解了unordered_map容器,接下来我们开始学习unordered_map容器的迭代器。由于哈希表的缘故,元素根据键(key)被哈希函数分配到不同的地址,导致元素间地址不连续,所以unordered_map容器的迭代器和同我们之前学过的map容器、set容器的迭代器不一样,它没有”顺序“这个概念,属于前向迭代器,只能通过++的操作而不能通过--的方式访问元素,不支持+8或-3等 STL无序关联式容器 2025年10月14日 0 点赞 0 评论 371 浏览
C++ STL map容器中,insert()和'[]'谁的插入效率更高? 在前面《如何为STL库中的map添加元素?》我们总结了4种方式为map容器插入元素,最常用的就是insert()和'[]'了。相必读者一定很好奇到底是谁的插入效率更高,用哪一个更好。这里先不直接公布答案,先看看直观的代码测试:#include<bits/stdc++.h>//万能头#include<string>#include<map>// STL有序关联式容器 2025年10月08日 1 点赞 0 评论 396 浏览
C++ STL移除算法std::unique()函数入门 前面一节我们学习了复制算法 reverse_copy() 函数,读者是否还记得它的功能是什么吗?没错,该函数能够将序列元素反转顺序后复制到目标区域。本节我们将学习一个新的算法,移除算法,顾名思义,该算法的功能是移除序列中不符合条件的元素,注意是移除而不是删除,实际上是覆盖。unique() 函数就是一个移除算法,"unique" 意为"唯一的",但读者千万别 C++常用算法(二) 2025年10月26日 0 点赞 0 评论 396 浏览
C++ STL 排序算法总结 本节将对我们本章所学到的所有排序模板进行一个总结。读者还记得我们学过哪四个排序函数吗?它们分别是:排序函数函数功能sort对指定范围内的元素进行通用、高效的排序。不保证相等元素的原始相对顺序。通常使用内省排序(快速排序+堆排序),平均和最优时间复杂度为O(N log N)。stable_sort对指定范围内的元素进行稳定排序。保证相等元素在排序后的相对顺序与其在原始序列中的相对顺序一致。当内存充足 C++常用算法(一) 2025年10月22日 0 点赞 0 评论 346 浏览
C++ STL容器该如何选择? 到目前为止,我们已经把所有容器全部学习完毕!包括:序列式容器:array容器、vector容器、deque容器、list容器、forward_list容器。有序关联式容器:map容器、set容器、multimap容器、multiset容器。无序关联式容器:unordered_map容器、unordered_multimap容器、unordered_set容器、unorder STL无序关联式容器 2025年10月16日 1 点赞 0 评论 356 浏览
C++ STL分区算法std::partition_copy()函数入门 上一节我们学习了partitioin()函数和stable_partition()函数,读者是否能够记起它们的功能以及对他们进行区分呢?本节我们将继续进行分区算法——partition_copy()函数的学习。该函数与前面两个函数大不相同,究其根本是partition_copy()函数能够保证不破破坏原序列,并且把分区后的元素复制到新的两个序列里。比如原序列是{1,2,3,4,5,6,7,8,9, C++常用算法(一) 2025年10月24日 0 点赞 0 评论 291 浏览
C++ STL 流迭代器适配器入门 流迭代器适配器,指的是将输入输出流当作迭代器来使用,分两种:istream_iterator用于写入流对象;ostream_iterator用于读取流对象。流迭代器的目的是让流对象适配容器,桥接算法以实现声明式的数据管理通道。那什么是流对象呢?读者可能还不熟悉这个名词。其实,我们从一开始接触编程的时候就学过流对象了!读者还记得”cout<<"Hello World!" STL迭代器适配器 2025年10月19日 0 点赞 0 评论 363 浏览
深度剖析C++ STL deque容器的底层构造 在《初识STL库中deque容器》我们谈到“deque底层是中控区+缓冲区,可以理解为通过指针链接数组块”不知读者是否对这句话有印象。理解这句话,其实已经了解deque的60%了。接下来,我将为读者一一解释deque的神秘面纱。deque分两部分,一部分是中控区,就是一个指针数组,存放着每一块内存的首地址;另一部分是缓冲区,存放着零散的小数组,所以说deque内元素可能不一定连续存储。画一张图读者 STL序列式容器 2025年10月04日 0 点赞 0 评论 420 浏览
C++ STL排列组合算法std::is_permutation()函数入门 上一节我们学习了排列组合算法——prev_permutation()函数,读者是否还记得它的功能是什么吗?没错,该函数以降序排序作为起点,生成上一个更小排列。本节我们将学习判断是否为排列组合算法——is_permutation()函数。"permutation"表示"置换",这里is_permutation()函数的功能是否互为彼此的排列组合,比如我们有两个 C++常用算法(二) 2025年10月26日 0 点赞 0 评论 302 浏览
C++ STL 排序算法std::sort()函数入门 在实际工作学习中,我们经常需要对容器进行排序,比如我们用一个vector容器来维护Dotcpp编程的用户,当用户刷新排名界面时,我们就需要对vector容器根据用户刷题量来进行排名了。看到“排序”这两个字,相信读者脑海里一定有这些词一闪而过:冒泡排序、选择排序、插入排序、归并排序、快排、堆排等排序算法。我相信读者能够通过这些基本算法来对vector容器进行排序,只不过效率有点慢,所以今天我们要介绍 C++常用算法(一) 2025年10月21日 0 点赞 0 评论 377 浏览