C++ STL复制算法std::copy_n()函数入门 上一节我们学习了排列组合算法is_permutation()函数,读者是否还记得它的功能是什么吗?没错,该函数能够判断两个序列是否互为排列组合。本节我们将学习一个新的算法——复制算法,顾名思义,复制算法的功能就是把一个区间的元素复制到另外一个区间,它是copy_n()函数,该算法要求迭代器至少为输入迭代器。它的语法功能如下:template<classInputIt, C++常用算法(二) 2025年10月26日 0 点赞 0 评论 765 浏览
C++ STL unordered_map容器如何删除元素? 学到这里,我们已经掌握unordered_map容器的基本知识了,增、改、查,但还没有学过删。本节将继续带领读者一起学习如何为unordered_map容器删除元素。erase()是删除unordered_map容器内元素的主要函数,这里通过代码简单介绍如何通过erase()删除元素:#include<iomanip>#include<iostream>#i STL无序关联式容器 2025年10月15日 0 点赞 0 评论 1102 浏览
判断C++ STL list容器是否为空,都给我用empty()! 在判断链表容器是否为空时,有人喜欢用size(),有人喜欢用empty(),这两种方法都可以成功判断list是否为空。如果读者使用的是empty(),那我没话说;但如果读者使用的是size(),读者可就要慎用了,因为在数据量很大的情况下,size()这会降低运行效率。这是为什么呢?要知道,STL大师不会任意制造“容器垃圾”,list有empty()这个成员函数就一定有它的道理。在C++11前,由于 STL序列式容器 2025年10月06日 0 点赞 0 评论 939 浏览
C++ STL填充算法std::generate()函数入门 前面一节我们学习了填充算法fill()函数和fill_n()函数,读者是否还记得它们的功能分别是什么吗?没错,fill()函数能对指定序列填充目标元素,fill_n()函数能够指定填充元素的个数。本节我们将继续学习填充算法——generate()函数,”generate“意为“生产”,顾名思义,generate()函数能够通过生成器函数为序列中的每个元素赋值。generate()函数的语法格式如下 C++常用算法(二) 2025年10月27日 0 点赞 0 评论 885 浏览
C++STL之Priority_queue(优先队列) C++STL之Priority_queue(优先队列)1.简介优先队列是一种极其特殊的队列,他与标准的队列使用线性结构进行计算不同,优先队列的底层是以散列的状态(非线性)表现的,他与标准的队列有如下的区别,标准的队列遵从严格的先进先出,优先队列并不遵从标…… C++STL库教程(附带题库) 2022年01月04日 84 点赞 0 评论 141359 浏览
C++ STL priority_queue如何更改堆顶元素选取规则? 上一节我们提到,在优先队列容器里,堆顶元素不一定是像字面意思一样是权值最”大“的值,就像1大于0一样,通过仿函数,我们能够更改规则,让这个”大“朝着相反的方向出发,实现”0>1"。如果读者还是第一次听过仿函数这个词的话也没关系,它就相当于类重载了函数调用符'()',把类当函数使就好了。值得注意的是,在更改规则时需要我们指定优先队列的适配容器,否则无法使用仿函数。下面 STL容器适配器 2025年10月18日 0 点赞 0 评论 880 浏览
C++ STL map容器如何删除元素? 学到这里,我们已经掌握map容器的基本知识了,增、改、查,但还没有学过删。本节将继续带领读者一起学习如何为map容器删除元素。erase()是删除map容器内元素的主要函数,这里通过代码简单介绍如何通过erase()删除元素:#include<iomanip>#include<iostream>#include<map>#inclu STL有序关联式容器 2025年10月08日 0 点赞 0 评论 980 浏览
C++ STL 排序算法std::stable_sort()函数入门 前面我们已经学习了sort()排序,本节我么将继续学习STL库提供的其他排序算法函数模板——stable_sort()。“stable”意为稳定,那么我们这个stable_sort()和之前学习过的排序算法sort()有什么区别呢,”稳定“之处在哪?原来,如果出现相同元素彼此紧邻,比如{1,2,3,3,3,4,5,3},我们其实只需要把最后一个‘3’前移即可,但是sort()奉行极致效率,不会浪费 C++常用算法(一) 2025年10月21日 0 点赞 0 评论 1005 浏览
C++ STL unordered_map容器入门 本节我们开始学习unordered_map容器。从功能上看,对比map容器,unordered_map容器既能够通过'[]'访问元素,又能够通过at()成员函数访问元素,同时还保证键值存在的唯一性,与map容器极为“相似”,唯一不同点就是unordered_map容器没有按键(key)进行自动排序;从结构上看,对比map容器,两者又是完全不一样的独立存在,map容器底层基于红黑树, STL无序关联式容器 2025年10月13日 0 点赞 0 评论 919 浏览
C++ STL deque容器如何增删元素? 前面我们已经充分了解deque的基本知识以及访问方式,本节将一口气为读者详细介绍如何对deque进行增删操作,加快我们的学习进度。这里可以类比vector的增删操作,《vector容器怎么在指定位置前插入元素?》、《vector容器怎么删除元素呢?》,读者通过对比学习,总结归纳出自己的宝贵经验,提高对STL容器的掌控力。我们先谈谈“增”这个操作:对比vector,我们都知道deque能够实现头增尾 STL序列式容器 2025年10月05日 0 点赞 0 评论 957 浏览