
STL
文章平均质量分 69
Jxiepc
一个努力向上的男同志
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++【STL】 | STL Effective C++
文章目录1、慎重选择容器类型2、不要试图编写独立于容器类型的代码1、慎重选择容器类型分类: 【序列式】:vector、string、deque、list; 【关联式】:set、multiset、map、multimap; 【非标准序列式】:slist、rope; 【非标准关联式】:hash_set、hash_miltiset、hash_map、hash_multimap; 【标准非STL】:array、bitset、valarray、stack、queue、priority_queue; 【原创 2022-04-27 15:04:57 · 1408 阅读 · 0 评论 -
C++【STL】 | 容器、函数、迭代器配接器
文章目录一、简介二、容器配接器三、迭代器配接器四、函数配接器1、自定义函数如何才能有配接能力2、函数绑定3、辅助配接器一、简介为STL组件提供更加灵活的用法,可应用于函数、容器、迭代器;二、容器配接器stack,是在deque容器进行封装;queue,是在deque上进行封装;三、迭代器配接器- insert iterators:插入迭代器,提供尾插、首插、以及任意位置插入的方法;- reverse iterators:将正向的迭代器逆转;- iostream iterators:将迭原创 2022-04-20 22:06:19 · 654 阅读 · 0 评论 -
C++【STL】| GNU空间配置器alloc刨析,如何管理内存池(附图解)....
文章目录一、简介二、stl_construct三、stl_alloc1、一级配置器2、二级配置器以下将会介绍gnu2.9下std::alloc的运作,将会看到它是如果管理内存,如何节约内存的时候,减少内存的浪费;对new delete内存分配知识阔以参数以下文章C++ |【总结归纳三本书籍系列】一文透彻资源管理,动态内存分配【上】…C++ |【总结归纳三本书籍系列】一文透彻资源管理,动态内存分配【下】…一、简介在STL中将alloc内存配置放置于<stl_alloc.h>中,而该配原创 2022-04-19 22:28:25 · 1361 阅读 · 0 评论 -
STL【tuple】| tuple源码刨析,为什么能传入自定义个数参数?
文章目录一、简介1、常用函数介绍1.1 operator=1.2 swap1.3 操作符1.4 get1.5 tie1.6 ignore1.7 make_tuple1.8 tuple_cat1.9 forward_as_tuple1.10 tuple_element1.11 tuple_size2、源码刨析《tuple巧妙设计》一、简介元组能够保存不同类型的集合对象;template <class... Types> class tuple;1、常用函数介绍1.1 operato原创 2022-04-18 17:26:04 · 457 阅读 · 0 评论 -
STL | 如何更好的掌握运用STL容器的时机?
前言文章目录前言一、如何更好的掌握运用STL容器的时机1.1 vector1.2 deque1.3 list1.4 multiset/set1.5 总结表一、如何更好的掌握运用STL容器的时机1.1 vector缺省(默认)情况下应使用vector。其内部结构简单,允许随机存储,灵活方便;1.2 deque若需要经常在序列头和尾插入、删除元素。且希望在删除后,内存能自动缩减。【采用多个内存块】;1.3 list若需要经常在容器间进行元素的插入、删除、移动。不支持随机存取,但在容器间原创 2022-01-22 07:57:16 · 122 阅读 · 0 评论 -
C++【STL】 | 仿函数的应用以及如何规范要求
文章目录一、基本概念1.1 为什么有仿函数,这样做有什么好处呢?1.2 仿函数可作为什么?二、仿函数的内部状态?1.3.1 pass by value1.3.3 pass by reference1.3.4 for_each的回返值三、判断式与仿函数3.1 基本概念3.2 判断式不应该被调用而改变自身的状态四、配接器4.1 常用仿函数4.2 函数配接器4.2.1 常用配接器4.2.2 辅助配接器一、基本概念就是使一个类的使用看上去像一个函数。其实现就是类中实现一个operator(),这个类就有了类似原创 2022-03-07 20:42:08 · 836 阅读 · 0 评论 -
STL【容器】| 【09】set/multiset
文章目录一、set1、常用成员函数2、案例一、set集合是按照特定顺序存储唯一元素的容器;一般使用红黑树来实现;用于查询居多;template < class T, // set::key_type/value_type class Compare = less<T>, // set::key_compare/value_compare class Alloc = al原创 2022-04-04 20:26:11 · 769 阅读 · 0 评论 -
STL【容器】| 【08】stack
文章目录一、stack1、常用成员函数2、案例一、stack栈(LIFO )是一种后进先出的数据结构,仅从容器的一端插入和提取;1、常用成员函数empty():是否为空;size():栈大小;push():入栈;top():获取栈顶元素;emplace():入栈;pop():弹出栈;swap():交换栈;2、案例#include <iostream>#include <stack>using namespace std; std::st原创 2022-04-04 17:29:33 · 883 阅读 · 0 评论 -
STL【算法】| 常用算法大集合
文章目录一、简介1.1 类别1.1.1 _if结尾1.1.2 _copy尾词1.1.3 算法类别二、非变动性算法2.1 简介2.2 常见算法2.2.1 元素计数2.2.2 最大值和最小值2.2.3 搜寻元素三、变动性算法3.1 简介3.2 常用3.3 移除性算法四、变序性算法五、排序算法六、已序区间算法七、数值算法一、简介STL算法都被设计用来处理一个或多个迭代器区间;多数情况下只需提供起点即可;STL算法采用覆盖模式而非安插模式;1.1 类别1.1.1 _if结尾当此类算法有两种形式原创 2022-03-08 16:22:50 · 1984 阅读 · 0 评论 -
STL | STL成员大汇总及其分类(必看)
前言文章目录前言容器内的型别容器内的型别原创 2022-01-23 23:00:38 · 1451 阅读 · 0 评论 -
STL | 【容器】归纳大全
文章目录一、概述1.1 容器1.2 算法1.3 迭代器二、常用容器2.1 vector2.1.1 常用成员函数2.2 string2.2.1 常用成员函数3.3 deque2.3.1 常用成员函数2.4list2.4.1 常见成员函数2.5 set/multiset2.5.1 常见成员函数2.6 map/multimap2.6.1 常见成员函数2.7 stack2.7.1 常见成员函数2.8 queue2.8.1 常见成员函数2.9 priority_queue2.9.1 常见成员函数一、概述STL(S原创 2021-09-14 21:45:36 · 514 阅读 · 0 评论 -
STL【容器】| 【11】unordered_map
文章目录一、unordered_map1、常用成员函数2、案例一、unordered_map无序映射是存储由key和映value组合形成的元素的关联容器,并且允许基于键快速检索单个元素素;采用哈希桶的数据结构;桶是内部哈希表中的一个槽,元素根据哈希函数计算的哈希值分配给该槽;桶的数量直接影响哈希表的负载因子——碰撞的概率;增加桶的数量时都会导致重新散列;template < class Key, // u原创 2022-04-06 00:07:00 · 723 阅读 · 0 评论 -
STL【容器】| 【11】map/multimap
文章目录一、map/multimap1、常用成员函数2、案例一、map/multimapmap是关联容器,它按照特定顺序存储由key和value组合形成的元素;键值通常用于对元素进行排序和唯一标识;template < class Key, // map::key_type class T, // map::mappe原创 2022-04-05 23:46:38 · 201 阅读 · 0 评论 -
STL【容器】| 【09】unordered_set
文章目录一、unordered_set1、常用成员函数2、案例一、unordered_set无序集是以无特定顺序存储唯一元素的容器,并且允许根据它们的值快速检索单个元素;采用哈希桶的数据结构;桶是内部哈希表中的一个槽,元素根据哈希函数计算的哈希值分配给该槽;桶的数量直接影响哈希表的负载因子——碰撞的概率;增加桶的数量时都会导致重新散列;元素的也是key,唯一的标识;元素不能修改,只能删除和插入;访问元素的速度比set快;template < class Key,原创 2022-04-05 15:20:34 · 837 阅读 · 0 评论 -
STL【容器】| 【07】forward_list
文章目录一、forward_list1、常用成员函数2、案例一、forward_list单链表是序列容器,允许在序列中的任何位置进行恒定时间的插入和擦除操作;无法通过位置直接访问元素;1、常用成员函数resize():改变大小;max_size():最大元素个数;empty():判断是否为空;front():第一个元素;assign:将新内容分配给list,替换其当前内容,并相应地修改其大小;push_front():在队首插入elem;pop_front():删除队首元原创 2022-04-04 00:42:42 · 505 阅读 · 0 评论 -
STL【容器】| 【06】priority_queue
文章目录一、priority_queue1.1 常用成员函数1.2 案例一、priority_queue优先级队列【大根堆】,第一个元素始终是其包含的最大元素;默认排序准则为less<T>;template <class T, class Container = vector<T>, class Compare = less<typename Container::value_type> > class priority_queue;原创 2022-04-01 22:08:19 · 211 阅读 · 0 评论 -
STL【容器】| 【05】queue
文章目录一、queue1.1 常用成员函数1.2 案例一、queue先进先出队列(FIFO),元素从尾部入队,从头部出队;template <class T, class Container = deque<T> > class queue;1.1 常用成员函数empty():是否为空;size():队列大小;front():对头元素;back():队尾元素;push():入队;emplace():入队;pop():出队;swap():交换队列;原创 2022-04-01 21:54:50 · 179 阅读 · 0 评论 -
STL【容器】| 【04】list
文章目录一、list1.1 几种创建方式1.2 常见成员函数1.3 insert、splice区别1.4 案例一、list双向链表是序列容器,允许在序列中的任何位置进行恒定时间的插入和删除操作,以及双向迭代;无法通过位置直接访问元素;删除、插入、移动性能好;template < class T, class Alloc = allocator<T> > class list;1.1 几种创建方式list<数据类型> l;list<数原创 2022-04-01 21:33:29 · 282 阅读 · 0 评论 -
STL【容器】| 【03】deque
文章目录1、deque1.1 创建的几种方式1.2 常用成员函数1.3 案例1、deque双端队列,具有动态大小的序列容器;可在两端进行扩展或收缩;可随机访问,存储位置不连续;在中间插入、删除;template < class T, class Alloc = allocator<T> > class deque;1.1 创建的几种方式deque<数据类型> dq;deque<数据类型> dq(10):指定初始大小为10;原创 2022-03-31 20:19:22 · 235 阅读 · 0 评论 -
STL【容器】| 【02】Vector
文章目录1、vector1.1 常用成员函数1.2 案例1、vector动态数组,连续的存储位置存储具有相同数据类型的一组元素;使用偏移量随机访问元素;插入、删除元素较慢;空间能够动态变化,空间不够时,重新创建两倍大小的数组,将数据移动过去;template < class T, class Alloc = allocator<T> > class vector;1.1 常用成员函数empty():判断是否为空;size():返回当前实际元素个数;原创 2022-03-31 20:06:27 · 199 阅读 · 0 评论 -
STL【容器】 | 【01】Array
文章目录1、array1.1 常用成员函数1.2 案例1、array相当于数组,存储固定大小的具有相同数据类型的序列容器;元素存储在连续的内存位置,允许对元素随机访问;template < class T, size_t N > class array;1.1 常用成员函数empty():判断是否为空;size():返回当前实际元素个数;max_size():返回最大大小;[ ]:返回指定下标的元素;at:通过索引获取元素;front():获取第一个元素;原创 2022-03-31 19:58:57 · 266 阅读 · 0 评论