STL常用函数
STL函数
unorder_map容器必知必会攻略🐘
挂上map的学习笔记 Post not found: 学习笔记/STL/STL之map
unordered_map 容器,直译过来就是”无序 map 容器”的意思。所谓“无序”,指的是 unordered_map 容器不会像 map 容器那样对存储的数据进行排序。换句话说,unordered_map 容器和 map 容器仅有一点不同,即 map 容器中存储的数据是有序的,而 unordered_map 容器中是无序的。
对于已经学过 map 容器的读者,可以将 unordered_map 容器等价为无序的 map 容器。
具体来讲,unordered_map 容器和 map 容器一样,以键值对(pair类型)的形式存储数据,存储的各个键值对的键互不相同且不允许被修改。但由于 unordered_map 容器底层采用的是哈希表存储结构,该结构本身不具有对数据的排序功能,所以此容器内部不会自行对存储的键值对进行排序。
值得一提的是,unordered_map 容器在<unordered_map>头文件中,并位于 std 命名空间中。因此,如果想使用该容器,代码中应包含 ...
STL基本概念
STL的一些基本方法和常识
deque容器必知必会攻略🐋
deque容器的详细使用攻略
unorder_map容器必知必会攻略🐘
点击加速到unorder_mapPost not found: 学习笔记/STL/STL之unorder_map
🐘mapmap 由红黑树实现,其元素都是 “键值/实值” 所形成的一个对组(key/value pairs)。每个元素有一个键,是排序准则的基础。每一个键只能出现一次,不允许重复。
map 主要用于资料一对一映射的情况,map 内部自建一颗红黑树,这颗树具有对数据自动排序的功能,所以在 map 内部所有的数据都是有序的。比如一个班级中,每个学生的学号跟他的姓名就存在着一对一映射的关系。
特点
自动建立 Key - value 的对应。key 和 value 可以是任意你需要的类型。
根据 key 值快速查找记录,查找的复杂度基本是 O(logN),如果有 1000 个记录,二分查找最多查找 10次(1024)。
增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。
对于迭代器来说,可以修改实值,而不能修改 key。
优缺点和适用场景
优点:使用平衡二叉树实现,便于元素查找,且能把一个值映射成另一个值,可以创建字典。
缺点:每次插入值 ...
set容器必知必会攻略🐢
set 容器定义于<set>头文件,并位于 std 命名空间中。如果想在程序中使用 set 容器,该程序代码应先包含如下语句:
12#include <set>using namespace std;
set 容器的类模板定义如下:
12345template < class T, // 键 key 和值 value 的类型 class Compare = less<T>, // 指定 set 容器内部的排序规则 class Alloc = allocator<T> // 指定分配器对象的类型 > class set;
注意,由于 set 容器存储的各个键值对,其键和值完全相同,也就意味着它们的类型相同,因此 set 容器类模板的定义中,仅有第 1 个参数用于设定存储数据的类型。
对于 set 类模板中的 3 个参数,后 2 个参数自带默认值,且几乎所有场景中只需使用前 2 个参数,第 3 ...
STL实现—C++STL简介
C++ STL简介一、STL介绍本次课程主要面对有一定 c++ 基础(了解基本语法,熟悉常用特性)的 ,想要学习 c++ 更深入特性 ,掌握 c++ 强大标准库的同学 。通过本次课程,你将学习到 c++ template ,异常处理 ,并回顾数据库的部分知识 ,初步掌握 STL 开发 ,避免重复制造轮子。
将学习到的知识点:
模板编程
泛型编程
STL 常用组件
lambda 表达式
异常处理
内存处理
部分数据结构
部分算法
提示:本课程所有代码至少需要开启 -std=c++11 选项来支持 C++11 相关特性,在介绍 C++14 特性时的相关代码需要开启 -std=c++14 的编译选项,例如:
12+ g++ main.cpp -std=c++11+ g++ main.cpp -std=c++14
如果你没有使用过 STL,那么你是不爱 c++ 的,STL 的原名是“Standard Template Library”,翻译过来就是标准模板库。STL 是 C++ 标准库的一个重要组成部分,STL 实现了常用的数据结构和算法 ,蕴含其间的泛型编程和代码复用的思想深刻 ...
STL实现—迭代器
迭代器
一、实验内容本节实验我们将为大家讲解迭代器,主要介绍 5 种常见迭代器:输入、输出迭代器,前向逆向迭代器,双向迭代器和随机迭代器。主要内容包括各自的构造方法和操作方法。
1.1 知识点
输出迭代器
输入迭代器
前向迭代器
双向迭代器
随机迭代器
迭代器辅助函数
1.2 实验环境
g++
ubuntu 16.04
1.3 代码获取可以通过以下链接获取本课程的源码内容,本次实验内容主要包含在文件Iterator.h。
123//获取代码wget https://labfile.oss.aliyuncs.com/courses/1166/mySTL.zipunzip -q mySTL.zip -d ./Code/
二、迭代器详述迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上像迭代器的东西都可以叫做迭代器。然而迭代器有很多不同的能力,它可以把抽象容器和通用算法有机的统一起来。迭代器基本分为五种,输入输出迭代器,前向逆向迭代器,双向迭代 ...
STL和C++11
STL和C++11
参考《C++ primer Plus 第六版》
1 array容器array容易一旦声明,其长度就是固定的,他使用静态(栈)内存,而不是动态分配的内存。提供它旨在替代数组;array受到的显示比vector多,但效率更高。