C++ STL vector容器如何访问元素? 上一节我们具体了解了vector容器的迭代器及其使用方法,本节主要详细介绍各种访问vector内元素的方法,vector容器的访问方式和array非常像,可以跳转至《如何访问array容器内的元素?》将array和vector的访问方式类比起来学习,但是有一点需要牢牢记住,vector可不能通过get()函数模板进行访问!。这里也会详细讲解vector内元素的访问方式,因为学习既需要触类旁通,也需 STL序列式容器 2025年10月02日 2 点赞 0 评论 833 浏览
C++ STL分区算法std::partition_point()函数入门 到目前为止,我们已经学习了3个分区算法,读者知道他们分别是什么吗?partition()函数、stable_partition()函数和partition_copy()函数,它们都能够实现分区操作。比如我们可以通过stable_partition()函数对序列{1,2,3,4,5,6,7,8,9,10}进行“奇偶切割”,原序列处理后会变成{2,4,6,8,10,1,3,5,7,9}。当我们面临一些 C++常用算法(一) 2025年10月24日 0 点赞 0 评论 649 浏览
C++ STL priority_queue如何更改堆顶元素选取规则? 上一节我们提到,在优先队列容器里,堆顶元素不一定是像字面意思一样是权值最”大“的值,就像1大于0一样,通过仿函数,我们能够更改规则,让这个”大“朝着相反的方向出发,实现”0>1"。如果读者还是第一次听过仿函数这个词的话也没关系,它就相当于类重载了函数调用符'()',把类当函数使就好了。值得注意的是,在更改规则时需要我们指定优先队列的适配容器,否则无法使用仿函数。下面 STL容器适配器 2025年10月18日 0 点赞 0 评论 596 浏览
C++ STL map容器如何删除元素? 学到这里,我们已经掌握map容器的基本知识了,增、改、查,但还没有学过删。本节将继续带领读者一起学习如何为map容器删除元素。erase()是删除map容器内元素的主要函数,这里通过代码简单介绍如何通过erase()删除元素:#include<iomanip>#include<iostream>#include<map>#inclu STL有序关联式容器 2025年10月08日 0 点赞 0 评论 699 浏览
C++ STL复制算法std::copy_n()函数入门 上一节我们学习了排列组合算法is_permutation()函数,读者是否还记得它的功能是什么吗?没错,该函数能够判断两个序列是否互为排列组合。本节我们将学习一个新的算法——复制算法,顾名思义,复制算法的功能就是把一个区间的元素复制到另外一个区间,它是copy_n()函数,该算法要求迭代器至少为输入迭代器。它的语法功能如下:template<classInputIt, C++常用算法(二) 2025年10月26日 0 点赞 0 评论 536 浏览
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 评论 705 浏览
C++ STL unordered_map容器入门 本节我们开始学习unordered_map容器。从功能上看,对比map容器,unordered_map容器既能够通过'[]'访问元素,又能够通过at()成员函数访问元素,同时还保证键值存在的唯一性,与map容器极为“相似”,唯一不同点就是unordered_map容器没有按键(key)进行自动排序;从结构上看,对比map容器,两者又是完全不一样的独立存在,map容器底层基于红黑树, STL无序关联式容器 2025年10月13日 0 点赞 0 评论 682 浏览
千万别认为C++ STL array容器是动态数组! 当我们提到STL容器,一看到array,可别天真地以为它和vector一样是动态数组,实际上,它也是c++里面的普通数组,只不过被封装成一个类,多了一些成员函数罢了。不信我证明给你看:#include<bits/stdc++.h>/*array也是普通数组*/usingnamespacestd;/*数组内存是连续的我们直 STL序列式容器 2025年10月01日 1 点赞 0 评论 1062 浏览
C++STL之Priority_queue(优先队列) C++STL之Priority_queue(优先队列)1.简介优先队列是一种极其特殊的队列,他与标准的队列使用线性结构进行计算不同,优先队列的底层是以散列的状态(非线性)表现的,他与标准的队列有如下的区别,标准的队列遵从严格的先进先出,优先队列并不遵从标…… C++STL库教程(附带题库) 2022年01月04日 83 点赞 0 评论 140964 浏览
C++ STL stack容器适配器入门 栈是一种数据结构,遵循LIFO(last in first out)后进先出的原则。栈就像挤地铁一样,后上的人先出去。栈有两种行为,一个是”压栈“——push(val)或emplace(val),既插入元素,可以理解为头插法;一个是”弹栈“,既删除顶部元素,可以理解为头删法。我们可以查看栈的元素大小size(),判断栈是否为空empty()以及同类型的栈相互交换swap()。栈是一种很有趣的数据结 STL容器适配器 2025年10月16日 0 点赞 0 评论 640 浏览