C++ STL unordered_map容器如何删除元素? 学到这里,我们已经掌握unordered_map容器的基本知识了,增、改、查,但还没有学过删。本节将继续带领读者一起学习如何为unordered_map容器删除元素。erase()是删除unordered_map容器内元素的主要函数,这里通过代码简单介绍如何通过erase()删除元素:#include<iomanip>#include<iostream>#i STL无序关联式容器 2025年10月15日 0 点赞 0 评论 389 浏览
深度剖析C++ STL map容器emplace()和emplace_hint()高效插入元素的底层机制 前面我们通过实验知道单个插入emplace()效率最高,批量插入emplace_hint()效率最高,那为什么是这样呢?这里我们简单构造一个类obj,然后通过map去调用它,分别查看各个插入函数的调用情况:#include<iostream>#include<map>#include<string>using STL有序关联式容器 2025年10月08日 0 点赞 0 评论 375 浏览
C++ STL排列组合算法std::prev_permutation()函数入门 前面一节我们学习了排列组合算法——next_permutation()函数,读者是否还记得它的功能是什么吗?没错,它能让我们的序列按照字典序重新排列成下一个更大的组合。本节我们将学习它的对称函数——prev_permutation()函数。"prev"表示"前一个","permutation"表示"置换",这里prev C++常用算法(二) 2025年10月26日 0 点赞 0 评论 329 浏览
C++ STL 迭代器辅助函数prev(it , n)和next(it , n)入门 本节我们将继续进行迭代器函数的学习,由于next(it , n)和prev(it , n)功能上极为”相似“,所以笔者进行统一讲解。这里it参数指的是迭代器,n可为'+'、'-',需要根据容器进行选择(比如你总不会使用forward_list容器来进行后退操作),函数会返回将'it'进行'n'次移动操作后的迭代器。具体通过代码来展示: STL迭代器适配器 2025年10月20日 0 点赞 0 评论 318 浏览
还有人不知道C++ STL vector容器的emplace_back()成员函数? 在前面的章节《初识STL中的vector容器》我们曾谈到vector插入元素的方法,想必大家只知道push_back()这个尾插函数吧,其实,在c++11后,vector还有一个尾插函数,那就是emplace_back(),en的意思是进入,place的意思是位置,emplace_back()就是放到最后面的意思。不是都有push_back()了吗,这么还会有emplace_back()呢?其实这 STL序列式容器 2025年10月03日 0 点赞 0 评论 482 浏览
C++ STL priority_queue如何更改堆顶元素选取规则? 上一节我们提到,在优先队列容器里,堆顶元素不一定是像字面意思一样是权值最”大“的值,就像1大于0一样,通过仿函数,我们能够更改规则,让这个”大“朝着相反的方向出发,实现”0>1"。如果读者还是第一次听过仿函数这个词的话也没关系,它就相当于类重载了函数调用符'()',把类当函数使就好了。值得注意的是,在更改规则时需要我们指定优先队列的适配容器,否则无法使用仿函数。下面 STL容器适配器 2025年10月18日 0 点赞 0 评论 312 浏览
C++ STL deque容器如何访问元素? 前面我们讨论过怎么访问vector内容器,其实deque容器访问元素方法与前者一样非常相似,都可以通过'[]'、迭代器、以及back()和front()来访问元素,不同点在于deque没有data()指针也不支持函数模板get()<T>访问,学过的3种序列式容器里只有array容器支持。原因在于函数模板get()<T>访问元素要求容器在编译时固定数组序列,d STL序列式容器 2025年10月05日 0 点赞 0 评论 424 浏览
C++ STL序列查找算法std::find_end()函数入门 前面我们学习的查找算法都是单个元素进行查找,本节我们学习一个按序列进行查找的算法——find_end()。find_end(first1,last1,first2,last2)的功能是在主序列[first1,last1)中寻找最后一次出现的子序列[first2,last2),如果找到就返回最后一次出现在主序列中的子序列的起始迭代器;如果找不到就主序列的last1迭代器。举个例子,主序列是{' C++常用算法(一) 2025年10月23日 0 点赞 0 评论 339 浏览
C++ STL二分查找std::binary_search()函数入门 前面一节我们学习了equal_range()函数,该函数的功能是在指定有序区间内查找第一个高于目标元素的元素。本节我们开始学习新的二分查找函数——binary_search()函数。“binary”意为“二分的”,“search”意为“查找”,binary_search()函数的功能是在指定有序范围内判断是否存在目标元素。binary_search()函数的语法格式为:/*查找[fir C++常用算法(一) 2025年10月25日 0 点赞 0 评论 392 浏览
C++ STL unordered_map容器入门 本节我们开始学习unordered_map容器。从功能上看,对比map容器,unordered_map容器既能够通过'[]'访问元素,又能够通过at()成员函数访问元素,同时还保证键值存在的唯一性,与map容器极为“相似”,唯一不同点就是unordered_map容器没有按键(key)进行自动排序;从结构上看,对比map容器,两者又是完全不一样的独立存在,map容器底层基于红黑树, STL无序关联式容器 2025年10月13日 0 点赞 0 评论 407 浏览