STL

C++ STL序列查找算法std::adjacent_find()函数入门

本节我们将继续进行序列查找的学习——adjacent_find()函数。“adjacent”的意思是“相邻的”,adjacent_find(beg , end)函数的功能是:用于在序列[beg , end)中查找第一对相邻元素,这两个元素满足特定条件(默认是绝对相等),有返回值,如果找到第一对相邻相等元素,则返回指向该对元素的第一个元素的迭代器;否则返回容器的end()。它的函数模型是://查找&

C++STL之List容器

C++STL之List容器1.再谈链表List链表的概念再度出现了,作为线性表的一员,C++的STL提供了快速进行构建的方法,为此,在前文的基础上通过STL进行直接使用,这对于程序设计中快速构建原型是相当有必要的,这里的STL……

C++ STL stack适配器实现计算器

利用栈先入先出这种”对称性“,我们可以自己做一个计算器(支持'+'、'-'、'*'、'/'、'^'、'()')。主要思路是维护运算栈的单调递增,运算栈的单调递增指的是完全保持从左到右由低到高的运算顺序,维护同级运算符,避免“头重脚轻”,运算错误。比如我们要计算“1+2-3/4^5-6",从人的

C++ STL map容器如何添加元素?

为了给map容器添加元素,我们有4种方法:1. 最简洁的方式就是通过'[]',中括号内为key,通过map[key]=value的形式为map添加元素(这里如果已存在key,则进行覆盖);2. 然后就是大家熟悉的insert(),insert()在此处既可单个插入,又能多个插入,还可以通过迭代器参数优化从指定位置寻找插入位置;3. 然后就是emplace()直接构造了,但是仅能添加

C++ STL比较算法std::mismatch()函数入门

上一节我们学习了比较算法equal()函数,读者是否还记得它的功能是什么吗?没错,它能够帮助我们快速比较两个序列。本节我们将学习新的比较算法——mismatch()函数。“mis”表示“否定”,“match”表示“匹配”,与equal()函数的功能不同,mismatch()函数不仅能判断两个序列是否相等,它还能找出第一个不相同的元素在哪。mismatch()函数的语法格式为://形式1

C++模板是什么?

C++模板是C++编程语言中的泛型编程工具,它允许你编写与具体数据类型无关的通用代码。简单来说,模板让你可以创建一个"代码蓝图",编译器会根据这个蓝图为不同的数据类型生成具体的代码。举个例子:在C++的世界里,有很多种数据类型,比如int(整型)、double(双精度浮点型)、float(单精度浮点型)、long long(长整型)等,为了实现各个类型的加法函数,我们一般都会这

C++ STL 移动迭代器入门

本节我们将详细介绍移动迭代器适配器,又称之为“移动迭代器”。那么什么是移动迭代器呢?简言之,“*it”表示迭代器解引用,为左值引用,能够访问和二次赋值对象;而使用移动迭代器后,“*it”表示右值引用,直接更改元素的内部指针,实现资源转移。移动迭代器的强大之处在于高效率“移动”对象,但是需要谨慎使用,因为移动后“源对象”处于非定义状态,可能会造成程序的崩溃。为了更加详细地介绍移动迭代器,我们可以举个

C++ STL deque容器入门

前面我们已经接触到array、vector容器,掌握里一定的基础。现在我们开始进行deque容器的学习。duque,double-ended queue,意思就是双端队列,该容器首尾都能够进行增删元素操作且其时间复杂度为O(1)。deque底层是中控区+缓冲区,可以理解为通过指针链接数组块。deque与vector极其相似,下面展示其所有成员函数:类别成员函数函数签名说明元素访问atreferen

C++ STL工具函数std::move()函数入门

前面一节我们学习了旋转复制算法 rotate_copy() 函数,读者是否还记得它的功能是什么吗?没错,该函数能够在保持原序列不变的前提下生成旋转后的副本。本节我们将学习一个工具算法——move() 函数。"move" 意为"移动",从名称就能看出,这个函数用于将元素从一个位置移动到另一个位置,主要应用于批量高效移动复杂对象。move() 函数的语法格式如下

使用vector时,千万别混淆了capacity()和size()

在vector里,不管是循环、还是查看容器内元素大小,我们都会用到size()这个常用函数来获取当前容器内元素个数(几乎所有容器都有这个size()函数来跟踪容器内元素大小)。有时我们也常常听到capacity(),这个函数意思是容量,对于不熟悉size()、capacity()的小伙伴经常将它两弄混,导致一些概念混淆问题。接下里我将向读者详细介绍它两直接的关系,毕竟能用一个变量维护的东西,干嘛会