STL

C++ STL标准容器的特点和典型的使用场景

概念和作用 C++标准模板库(Standard Template Library,STL)提供了一组通用的模板类和函数,用于处理常见的数据结构和算法。STL中的标准容器是其中的重要组成部分,它们提供了不同的数据结构和操作方式,适用于各种不同的使用场景。 说白了,就是每一种容器代表一种特定的数据结构。 ......
容器 场景 典型 特点 标准

常用STL

参考链接: [C++ STL] vector使用详解 - fengMisaka - 博客园 (cnblogs.com) [C++ STL] deque使用详解 - fengMisaka - 博客园 (cnblogs.com) [C++ STL] list使用详解 - fengMisaka - 博客园 ......
常用 STL

C++ STL 容器简单讲解

STL 简单讲解 网上有很多很好的资料可以参考 而直接看标准是最准确清晰的 vector stack queue / priority_queue deque array map / multimap set / multiset unordered_map unordered_set 关于指针和迭 ......
容器 STL

STL(13) map multimap

目录基本结构源码map独有的operator[] 和set的区别 set中key就是value,value就是key 而map中value中有key和data 基本结构 key不能改 data可以改 源码 仍然是一步步的传递 这里的迭代器改为了一个普通的iterator select1st的实现 m ......
multimap STL map 13

STL(13) set multiset

目录源码VC6中没有identity()那么如何调用呢使用multiset 有了红黑树的基础,set和map就变得很简单了 源码 一步一步的调用rbtree 因为set的value就是key 所以从value中取出key就用identity就可以 而取出迭代器用的是const iterator 不允 ......
multiset STL set 13

C++ STL 容器之map

一、map简介 可以将任何基本类型映射到任何基本类型。如int array[100]事实上就是定义了一个int型到int型的映射。 map提供一对一的数据处理,key-value键值对,其类型可以自己定义,第一个称为关键字,第二个为关键字的值 map内部是自动排序的 二、用法 1.map定义: ma ......
容器 STL map

【gdb】让GDB支持STL的标准库的方法

本文源自http://sourceware.org/gdb/wiki/STLSupport 正常情况下,gdb没法直观的打印出stl标准库中的容器之类的,调试起来非常困难了。 如vector,queue, deque, list等。 如vector<int> a (gdb) p a $1 = {<s ......
标准 方法 gdb GDB STL

C++ STL之向量vector

/*vector_example.cpp*/ #include <iostream> #include <vector> #include <string> using namespace std; int main() { vector<string> msg = {"Hello", "C++", ......
向量 vector STL

STL迭代器(iterator)

http://c.biancheng.net/view/6675.html 迭代器类别 常用的迭代器按功能强弱分为输入迭代器、输出迭代器、前向迭代器、双向迭代器、随机访问迭代器 5 种。 迭代器的定义方式 尽管不同容器对应着不同类别的迭代器,但这些迭代器有着较为统一的定义方式,具体分为 4 种,如表 ......
iterator STL

C++STL进阶:pb_ds库

Windows, 64bit G++ (ISO c20) stack=268435456 开启O2优化 万能头文件 CodeForces在 \(\tt C^{20(64)}_{++}\) 版本下无法使用 bits;如果需要使用 priority_queue 则无法使用 using(会和 std 撞名 ......
pb_ds STL pb ds

合并果子题解-C++ STL priority_queue容器的使用

说明:本博文关于priority_queue容器的说明来源于www.cnblogs.com/fusiwei/p/11823053.html 本人是刚刚接触算法竞赛的萌新,如果有大佬发现了错误,还望指出(真的有人会看本蒟蒻的博文吗) 这是我的第一篇博文,更多是作为测试 以后会将博客作为笔记记录学习的体 ......
题解 果子 priority_queue 容器 priority

STL (9/16)

系统为某一程序分配空间时和空间大小无关,只和申请次数有关 vector 1.遍历方式 初始化可以 =make_pair(1 , 2); 也可以 ={1,2}; string substr()::取子集,输入区间下标; c_str() ::返回首地址 queue 优先队列(堆) 默认大跟堆 小跟对方式 ......
STL 16

C++ STL 编程指北

C++ STL 编程指北 未避免歧义,所有容器的swap方法和不常用方法均未写 1. vector 向量容器 用一句话来说,vector就是可变长数组。 但vector所支持的可变长特性,并不是在原空间之后接续新空间来实现的,因为无法保证之后尚有可供分配的空间。 底层实现上当增加新元素时,如果当前v ......
STL

STL(12) RBTREE 红黑树

目录红黑树的基本原理基本要求变色和旋转rbtree源码G2.9示例2.94.9treenode的构造 关联式容器: 查找快,插入快 STL中的主要代表:红黑树,hashtable 红黑树的基本原理 单个结点来看,左孩子小于根节点,右孩子大于根节点(二叉搜索树) 红黑树是什么,有什么意义:排序二叉树有 ......
RBTREE STL 12

C++中STL用法汇总

1 什么是STL? STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++ Standard Library)中,是ANSI/ISO C++标准中最新的也是极具革命性的一部分。该库包含了诸多在计算机科学 ......
STL

STL(11) deque stack queue

目录源码 G2.9buffersize的自定大小insert模拟连续空间-的重载++--重载+=重载gnu c 4.9queuestack其他的底层结构 容器deque,双向开口的queue 容器结构的表示 是一种分段连续的假象,当需要分配的时候,向前面再分配一个buffer 迭代器的构造如图,no ......
deque stack queue STL 11

C++ STL

Dev-C++ 可在 工具 -> 编译选项 -> 代码生成 / 优化 -> 代码生成 -> 语言标准 中选择 “ISO C++11” 或 “GNU C++11” 来支持 C++11 的新特性(蓝Dev 还不支持 C++14) 不声明下,区间均为左闭右开区间,typename 表示一个数据类型而不是 ......
STL

STL(10) array forward_list

目录 array在c++中本就存在,而为什么要包装称为容器 要遵守容器的原则,要实现iterator,要享受标准库中的算法等 由于不可扩充,所以需要指定大小 ......
forward_list forward array list STL

STL(9) vector

目录底层两倍增长的原理vector的iteratorgnu c 4.9 动态增长的数组 底层 数组,支持动态扩充 在某一个点上,需要在内存的别的地方找到空间,进行扩充 扩充方式,当到达了一个阈值,在内存中找到另一个空间,进行成倍增长 sizeof vector为12 内部有三根指针,start en ......
vector STL

STL(8) 迭代器设计原则和traits

目录iterator的原则以rotate为例子五种类型traits Traits:特征 Traits就是说你丢给他一个东西,希望得到某些特征 iterator的原则 是算法和容器的桥梁 用iterator告诉算法操作范围 在操作的过程中,算法想知道iterator的性质,从中选择最佳化的动作 以ro ......
原则 traits STL

C++ STL之map、multimap

map和multimap是C++ STL(Standard Template Library)中的关联容器,它们提供键值对的存储和访问。 map是一个有序关联容器,它存储一组键值对,其中每个键都是唯一的。map中的键值对按照键的升序排序。用户可以通过键来访问、修改和删除对应的值。map的实现通常使用 ......
multimap STL map

STL——bitset的使用方法

# bitset ## 介绍 类似 $bool$ 数组一样的东西,储存的是二进制,但是每一位只占 $1bit$,可以优化你算法的时间和空间复杂度。 ## 储存 开一个bitset为: ```cpp bitsetbs; ``` 最左边为最低位(即第 $0$ 位),最右边为最高位。 在初始化的时候,是从 ......
使用方法 方法 bitset STL

STL(7) list

[toc] #源代码分析GNU 2.9 ![](https://img2023.cnblogs.com/blog/3239608/202309/3239608-20230909004927854-1070112772.png) ##存储对象 ![](https://img2023.cnblogs.c ......
list STL

STL在遍历过程中操作地址的改变

`2023-08-26 09:57:22` `start writing 2023.8.26 9:18` 又遇到奇怪错误了,其实在打模拟赛(wzOI 2023.8.24 T1)的时候就发现有这个问题了,赛后来研究一下。 以下代码: ```cpp //check是一个返回值为 bool 类型的判断函数 ......
过程 地址 STL

126.STL 之 空间配置器(allocator)

# 126.STL 之 空间配置器(allocator) ## 1.SGI 标准的空间配置器,std::allocator SGI也定义了一个符合部分标准,名为allocator的配置器,但是它自己不使用,也不建议我们使用,主要原因是效率不佳。 **它只是把C++的操作符::operator new ......
allocator 空间 126 STL

STL(6) 分配器

[toc] 不直接使用,是幕后英雄,选择合适的分配器可以提高效率 #operator new()和malloc() operator new()在最底层会调用malloc() ![](https://img2023.cnblogs.com/blog/3239608/202309/3239608-20 ......
分配器 STL

STL学习笔记

# 迭代器 迭代器(iterator)是一种抽象的设计概念,现实程序语言中并没有直接对应于这个概念的实物。在>一书中提供了23中设计模式的完整描述,其中iterator模式定义如下:提供一种方法,使之能够依序寻访某个容器所含的各个元素,而又无需暴露该容器的内部表示方式。 ## 迭代器案例 ```cp ......
笔记 STL

STL(5) 必要基础:操作符重载和模板

[toc] #操作符重载 operator overloaded ##四个不能重载的操作符 1. ::域 2. . 成员获取 3. .* 4. ?:判断语句 ##基本语法 下图说明了对于不同数量的变量如何去重载 ![](https://img2023.cnblogs.com/blog/3239608 ......
操作符 模板 基础 STL

STL学习笔记

# 迭代器 迭代器(iterator)是一种抽象的设计概念,现实程序语言中并没有直接对应于这个概念的实物。在>一书中提供了23中设计模式的完整描述,其中iterator模式定义如下:提供一种方法,使之能够依序寻访某个容器所含的各个元素,而又无需暴露该容器的内部表示方式。 ## 迭代器案例 ```cp ......
笔记 STL

c++STL

STL概念 STL,英文全称 standard template library,中文可译为标准模板库或者泛型库,其包含有大量的模板类和模板函数,是 C++ 提供的一个基础模板的集合,用于完成诸如输入/输出、数学计算等功能。 stl六大组件 STL提供了六大组件,彼此之间可以组合套用,这六大组件分别 ......
STL