STL

C++ STL list容器如何访问元素?

在《初识STL库中的list容器》那节我们就可以看到list容器内所有成员函数,如果我们仔细观察,我们就会发现list既没有at()成员函数又没有data()指针,所以我们不能通过at()或data()来对list进行元素访问。当然,由于链表的元素储存地址不是连续的,所以无法通过'[]'重载进行元素访问,所以list只能“认命”,只能通过最基本的元素访问方式——迭代器进行元素访问。

C++ STL array容器如何访问元素?

我们已经认识STL库里的array容器了,在填充完元素后,最常见的操作就是查看array里的元素了。本节将会详细介绍多种访问array内元素的方式,让读者熟悉array容器内元素的访问方式!和普通数组一样,array也重载了'[]'运算符,我们可以通过'[]'访问array内的元素:#include<bits/stdc++.h>/*如何访问

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

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

C++ STL转换算法std::transform()函数入门

前面一节我们学习了填充算法 generate() 函数和 generate_n() 函数,读者是否还记得它们的功能分别是什么吗?没错,generate() 函数能通过生成器为序列中的每个元素赋值,generate_n() 函数能够从指定位置开始为指定个数的元素重新赋值。本节我们将学习一个转换算法——transform() 函数,"transform" 意为"转换&qu

C++STL之Queue容器

C++STL之Queue容器1.再谈队列回顾一下之前所学的队列,队列和栈不同,队列是一种先进先出的数据结构,STL的队列内容极其重要,虽然内容较少但是请务必掌握,STL的队列是快速构建搜索算法以及相关的数论图论的状态存储的基础。……

C++ STL 移动迭代器入门

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

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

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

C++ STL遍历算法std::for_each()函数入门

到目前为止,排序、合并、查找模板函数我们都已经深入接触过了,读者是否能够感受到<algorithm>算法头文件的便利之处?对于STL库给定的完美容器我们直接用,高效算法我们直接调,大大提高了我们的工作效率。本节我们将继续学习另外一个模板函数——for_each()。for_each(beg , end , op):这里表示对区间[beg , end)进行op操作,这里op既可以是普通函

C++ STL unordered_set容器入门

本节我们将进入unordered_set容器的学习。对于unordered_set容器,我们至少能够知道它的两点规则,即:1. 不会像unordered_map容器一样进行自动排序,反而由于哈希表的缘故,元素根据键被哈希函数映射到桶数组里,显得“杂乱无序”;2. 存储的元素已不再是键值对,而是“值”且不允许存在重复值,我们可以认为它键值一体,还有就是其值不能通过迭代器或成员函数修改。接下来我们将通

C++ STL容器简介

STL容器是C++标准模板库中用于存储和管理数据集合的通用数据结构模板类。可以把它们想象成各种规格的“智能储物箱”,每个箱子都有自己独特的存放和取用规则。这些容器大大简化了程序员的数据管理工作量——不需要从零开始实现链表、栈、队列这些基础数据结构,而是直接使用现成的模板类。比如vector就像可以自动扩容的动态数组,list如同可以高效插入删除的双向链表,map则提供了键值对的快速查找能力。所有S