STL

STL(4) OOP

[toc] #OOP OOP试图将数据和操作关联在一起 比如一个class中,不仅有数据,还有对于容器的操作 #GP ![](https://img2023.cnblogs.com/blog/3239608/202309/3239608-20230904234307097-1320722704.pn ......
STL OOP

STL(3) 分配器 allocator

[toc] #使用分配器 分配器并不在gnu c的标准库中,需要从ext中引入 ![](https://img2023.cnblogs.com/blog/3239608/202309/3239608-20230904230134583-1672167695.png) ![](https://img2 ......
分配器 allocator STL

STL标准模板之容器

### 一、vector 向量容器 头文件:#include - 采用顺序结构存储数据,可以使用下标进行随机访问,有时候也叫数组容器(C++11中增加了array容器,定长数组容器,相比普通数组它是类类型,增加成员函数,提高安全性) - vector是可变长的顺序表结构,可以自动扩容,容器中的元素存 ......
容器 模板 标准 STL

STL模版 -- day02

##### 一、deque 双端队列容器 - 头文件 #include - 是下标顺序容器,它允许在首尾两端快速地插入、删除数据 - deque的元素不是全部相邻存储的:采用单独分配的固定大小数组的序列存储数据,以及额外的登记表(中控数组),该表中记录了所有序列的地址,这表示通过下标访问元素时必须经 ......
模版 STL day 02

STL模板 -- day01

##### STL标准模板库 ###### 一、STL是Standard Template Library 的缩写 - 中文名标准模板库,由惠普实验室提供(使用C++模板语言封装的常用的数据结构与算法) - STL容器所提供的都是值(value)寓意,而非引用(reference)寓意,也就是说当我 ......
模板 STL day 01

STL(2)

[toc] #容器的分类 1. 序列式 sequence container ![](https://img2023.cnblogs.com/blog/3239608/202309/3239608-20230904103904546-633491180.png) array 固定长度 vector ......
STL

STL标准模板库及常用算法

### 一、STL标准模板库 - STL是Standard Template Library的缩写,中文名标准模板库,由惠普实验室提供(使用C++模板语言封装的常用的数据结构与算法) - STL中有六大组件: - 算法:以函数模板的形式实现的常用算法,例如:swap\max\min\find\sor ......
算法 模板 常用 标准 STL

C++语法STL语法

## 常用STL结构 一些常用的STL可以帮我们直接实现数据结构,让算法更容易实现。 * `vector`——向量、数组 * `pair`——元组 * `queue`——队列 * `stack`——栈 * `priority_queue`——优先队列 * `unorder_map`——哈希表(相比` ......
语法 STL

STL(1) STL基础

[toc] #标准库和STL STL代表standard template library,STL是标准库的一个子集,大概占有其中50-70% #STL的六大部件 1. 容器 containers 2. 分配器 allocators 3. 算法 algorithms 4. 迭代器 iterators ......
STL 基础

STL专题

## STL专题 ### 1. ```c++ vector, 变长数组,倍增的思想 size() 返回元素个数 empty() 返回是否为空 clear() 清空 front()/back() push_back()/pop_back() begin()/end() [] 支持比较运算,按字典序 p ......
专题 STL

C++标准库的重要里程碑——STL的诞生

C++标准库的重要里程碑——STL的诞生 原创2023-07-12 11:30·鲨鱼编程 STL(Standard Template Library)是C++标准库的核心组件之一,它提供了一种通用的编程模式,使得程序员可以更加方便地实现常见的数据结构和算法。STL的诞生标志着C++语言的一个重要里程 ......
里程碑 标准 STL

STL- 常用算法

# 5 STL- 常用算法 **概述**: * 算法主要是由头文件`` `` ``组成。 * ``是所有STL头文件中最大的一个,范围涉及到**比较、 交换、查找、遍历操作、复制、修改**等等 * ``体积很小,只包括几个在序列上面进行简单数学运算的模板函数 * ``定义了一些模板类,用以声明函数对 ......
算法 常用 STL

STL- 函数对象

# 4 STL- 函数对象 ## 4.1 函数对象 ### 4.1.1 函数对象概念 **概念:** * 重载**函数调用操作符**的类,其对象常称为**函数对象** * **函数对象**使用重载的()时,行为类似函数调用,也叫**仿函数** **本质:** 函数对象(仿函数)是一个**类**,不是 ......
函数 对象 STL

STL- 常用容器

# 3 STL- 常用容器 ## 3.1 string容器 ### 3.1.1 string基本概念 **本质:** * string是C++风格的字符串,而string本质上是一个类 **string和char * 区别:** * char * 是一个指针 * string是一个类,类内部封装了c ......
容器 常用 STL

STL初识

# 2 STL初识 ## 2.1 STL的诞生 * 长久以来,软件界一直希望建立一种可重复利用的东西 * C++的**面向对象**和**泛型编程**思想,目的就是**复用性的提升** * 大多情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作 * 为了建立数据结构和算法的一套标准,诞生 ......
STL

STL的运用

multiset 可以维护两个元素之间的差值 异或值等等 相关习题 G - Minimum Xor Pair Query (atcoder.jp) Problem - G - Codeforces F-最小异或对_ (nowcoder.com) ......
STL

数据结构(数组模拟与STL)

## 通过数组模拟 ### 栈 ```c++ int stk[N], top; void init() { // 初始化 top = 0; } bool isEmpty() { // 判断是否为空 return top == 0; } bool isFull() { return top >= MA ......
数据结构 数组 结构 数据 STL

c++ stl std::sort使用例子

class User { public: int32_t m_fight_power; private: int32_t m_level; }; bool CenterData::compare(const User *left, const User *right) { if(left->m_fi ......
例子 sort stl std

STL简介

STL六大部件 容器 (class template) 分配器(为容器服务,class template) 算法 (function template) 迭代器(泛化的指针,容器和算法之间的桥梁)(class template) 适配器 (class template) 仿函数 (class tem ......
简介 STL

STL容器和算法

[toc] # STL容器和算法 ## 基本概念 标准模板库,主要分为容器、算法、迭代器。 通过迭代器访问容器中的数据,并进行算法操作。 所有代码采用模板类和模板函数的方式。 ## 容器 ### 容器的分类 #### 序列式容器 每个元素都有固定位置,该位置取决于插入时机和地点,和元素值无关。 ve ......
算法 容器 STL

STL

# C++标准库体系结构与内核分析 ## 第一讲 所谓泛型编程,就是使用template(模板)为主要工具来编写程序。 本课程以STL为标准、深层次地探讨泛型编程。 level 0:使用C++标准库 level 1:认识C++标准库 level 2:良好使用C++标准库 level 3:扩充C++标 ......
STL

c++ 常用的 STL

# c++ 中常用的 STL #### vector ```c++ //vector 变长数组 倍增的思想(倍增:系统为每一个程序分配空间的时候,所需要的时间和空间大小无关,与请求次数相关)尽量减少请求的次数 /* 返回元素的个数 size() 判断是否为空 empty() 清空 clear() f ......
常用 STL

C++ STL算法篇@@

算法基础算法概述 算法部分主要由头文件,,组成. 是所有STL头文件中最大的一个,其中常用到的功能范围涉及到比较交换替换便利操作复制修改反转排序合并等等. 体积很小,只包括几个在序列上面进行简单数学运算的模板函数,包括加法和乘法在序列上的一些操作 定义了一些模板类,用以声明函数对象 STL提供了大量 ......
算法 STL

10.1 C++ STL 模板适配与迭代器

STL(Standard Template Library)标准模板库提供了模板适配器和迭代器等重要概念,为开发者提供了高效、灵活和方便的编程工具。模板适配器是指一组模板类或函数,它们提供一种适配机制,使得现有的模板能够适应新的需求。而迭代器则是STL中的令一种重要的概念,它是一个抽象化的数据访问机... ......
模板 10.1 STL 10

9.1 C++ STL 排序、算数与集合

C++ STL(Standard Template Library)是C++标准库中的一个重要组成部分,提供了丰富的模板函数和容器,用于处理各种数据结构和算法。在STL中,排序、算数和集合算法是常用的功能,可以帮助我们对数据进行排序、统计、查找以及集合操作等。STL提供的这些算法,能够满足各种数据处... ......
9.1 STL

11.1 C++ STL 应用字典与列表

C++ STL 标准模板库提供了丰富的容器和算法,这些模板可以灵活组合使用,以满足不同场景下的需求。本章内容将对前面学习的知识进行总结,并重点讲解如何灵活使用STL中的vector和map容器,以及如何结合不同的算法进行组合。通过灵活组合使用这些容器和算法,能够满足不同场景下的需求,实现高效的数据处... ......
字典 11.1 STL 11

8.1 C++ STL 变易拷贝算法

C++ STL中的变易算法(Modifying Algorithms)是指那些能够修改容器内容的算法,主要用于修改容器中的数据,例如插入、删除、替换等操作。这些算法同样定义在头文件 algorithm中,它们允许在容器之间进行元素的复制、拷贝、移动等操作,从而可以方便地对容器进行修改和重组。 ......
拷贝 算法 8.1 STL

7.1 C++ STL 非变易查找算法

C++ STL 中的非变易算法(Non-modifying Algorithms)是指那些不会修改容器内容的算法,是C++提供的一组模板函数,该系列函数不会修改原序列中的数据,而是对数据进行处理、查找、计算等操作,并通过迭代器实现了对序列元素的遍历与访问。由于迭代器与算法是解耦的,因此非变易算法可以... ......
算法 7.1 STL

6.1 C++ STL 序列映射容器

Map/Multimap 映射容器属于关联容器,它的每个键对应着每个值,容器的数据结构同样采用红黑树进行管理,插入的键不允许重复,但值是可以重复的,如果使用`Multimap`声明映射容器,则同样可以插入相同的键值。Map中的所有元素都会根据元素的键值自动排序,所有的元素都是一个`Pair`同时拥有... ......
序列 容器 6.1 STL

5.1 C++ STL 集合数据容器

Set/Multiset 集合使用的是红黑树的平衡二叉检索树的数据结构,来组织泛化的元素数据,通常来说红黑树根节点每次只能衍生出两个子节点,左面的节点是小于根节点的数据集合,右面的节点是大于根节点的集合,通过这样的方式将数据组织成一颗看似像树一样的结构,而平衡一词的含义则是两边的子节点数量必须在小于... ......
容器 数据 5.1 STL