c++ STL
文章平均质量分 74
STL学习
一只子美
科班在校生,希望有朝一日开发出一款属于自己的有灵魂的产品。现阶段目标PAT甲级高分。
٩(๑•ㅂ•)۶
展开
-
【黑马程序员C++ STL】学习记录
黑马程序员 2017 C++ STL 教程(STL 部分已完结)基于黑马STL课程整理:黑马程序员2017C++STL教程 ⬅????视频链接专栏????:本STL专栏目录(下面整理的和本专栏一致,可以不看!!!)链接如下:专栏:本STL专栏目录1.1 STL基本概念1.2 简单的STL案例2.2 C++STL ⭐string容器详解string是C++风格的字符串,就前期打算法比赛而言,用C语言风格cstring就够了???(被y总带的风格????)2.3 C++STL ⭐vect原创 2021-11-21 19:49:26 · 4768 阅读 · 1 评论 -
1.1 STL基本概念
1 STL概述STL是StandardTemplateLibrary的简称,标准模板库,惠普实验室开发的一系列软件的统称。它是由AlexanderStepanov、MengLee和DavidRMusser在惠普实验室工作时所开发出来的。这可能是一个历史上最令人兴奋的工具的最无聊的术语。从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。这里的“容器”和算法的集合指的是世界上很多聪明人很多年的杰作。STL的目的是标准化组件,这原创 2021-08-19 13:10:46 · 459 阅读 · 0 评论 -
1.2 简单的STL案例
文章目录1、容器算法迭代器分离案例2、专栏回顾:第一章到第二章2.21、容器算法迭代器分离案例案例:统计某个元素在数组里出现的次数简易版(帮助理解,无STL)#include<iostream>using namespace std;//算法 负责统计某个元素出现多少次int mycount(int* start,int * end,int val){ int num = 0; while (start != end) { if (*start == val)原创 2021-08-20 17:49:59 · 593 阅读 · 0 评论 -
2.2 C++STL string容器详解
文章目录引言2.2.1 string的特性2.2.2 string用法理论2.2.2.1 string构造函数2.2.2.2 string赋值操作2.2.2.3 string取值操作2.2.2.4 string拼接操作2.2.2.6 string查找2.2.2.7 string替换2.2.2.7 string字符串比较2.2.2.8 string字符串插入和删除2.2.2.9 string子串string用法示例代码string用法示例代码结果引言string容器string是C++风格的字符串,而s原创 2021-08-21 18:00:04 · 353 阅读 · 0 评论 -
2.3 C++STL vector容器详解
文章目录2.3.1 引入2.3.2 代码实例2.3.3 运行结果2.3.1 引入vector 容器动态数组 可变数组vector容器 单口容器(尾部操作效率高)vector动态增长基本原理:当插入新元素时,如果空间不足,那么vector会重新申请更大的一块内存空间,将原空间数据拷贝到新空间,释放旧空间的数据,再把新元素插入新申请空间。理论用法详解见C++ STL vector容器详解匿名对象C++之匿名对象解析2.3.2 代码实例#include<iostream>原创 2021-08-24 12:06:57 · 360 阅读 · 2 评论 -
2.4 C++STL deque容器详解
文章目录2.4.1 引入2.4.2 代码示例2.4.3 代码运行结果2.4.4 具体案例总结2.4.1 引入deque容器类比vector容器来学习。deque为双向开口容器,见下图。而对比vector容器作为单项开口容器,在头部插入与删除的操作效率奇差。常用API应用学习 deque容器常用API原理机制这里不深究,本章仅探讨如何使用deque。感兴趣的同学可以自己搜索,这里放一张原理图2.4.2 代码示例#include<iostream>#include<原创 2021-08-25 15:43:13 · 305 阅读 · 1 评论 -
2.5 C++STL stack详解
文章目录2.5.1引入2.5.2 代码示例2.5.3 代码运行结果总结2.5.1引入stack是堆栈容器,是一种“先进后出”的容器。stack是简单地装饰deque容器而成为另外的一种容器。栈不能遍历,不支持随机存取,只能通过top从栈顶获取和删除元素。stack 常用API学习 C++的STL库常用API–stack2.5.2 代码示例#include<iostream>#include<stack>using namespace std;void原创 2021-08-26 10:53:22 · 219 阅读 · 0 评论 -
2.6 C++STL queue详解
文章目录2.6.1 引入2.6.2 代码示例2.6.3 代码运行结果总结2.6.1 引入首先,在STL中 queue 和 stack 其实并不叫容器(container),而是叫适配器(adapter),他们是对容器的再封装。队列,简称队,是一种操作受限的线性表。限制为:只允许在队首删除(出队),队尾插入(入队),其特点是先进先出。在STL中,queue作为一种适配器,其底层容器一般为deque(双端队列)和list(双向链表),其中deque为默认底层容器。queue用法学习 C++的STL原创 2021-08-26 11:19:22 · 586 阅读 · 0 评论 -
2.7 C++STL list容器详解
文章目录2.7.1 引入2.7.2代码示例2.7.3代码运行结果总结2.7.1 引入STL list 容器,又称双向链表容器,即该容器的底层是以双向链表的形式实现的。这意味着,list 容器中的元素可以分散存储在内存空间里,而不是必须存储在一整块连续的内存空间中。链表是由一系列的节点组成,结点包含两个域,一个数据域,一个指针域。由于链表内存是非连续的,因此添加删除元素时间复杂度都是常数项,不需要移动元素,比数组添加删除效率高。链表只有在需要的时候才分配内存。链表需要额外的空间来保存节点关系(原创 2021-08-27 23:41:03 · 272 阅读 · 1 评论 -
2.8 C++STL set/multiset容器详解
文章目录2.8.1 引入2.8.2 代码示例2.8.3 代码运行结果2.8.4 对组pair的补充代码实例运行结果总结2.8.1 引入set/multiset容器概念set和multiset是一个集合容器,其中set所包含的元素是唯一的,集合中的元素按一定的顺序自动排列。set采用红黑树变体的数据结构实现,红黑树属于平衡二叉树。在插入操作和删除操作上比vector快。在n个数中查找目标数的效率是 log 2 n。set容器中不允许重复元素,multiset允许重复元素。只提供Inse原创 2021-10-13 09:37:27 · 313 阅读 · 0 评论 -
2.9 C++STL map/multimap容器详解
文章目录2.9.1 引入2.9.2 代码示例map案列multimap案列2.9.3 代码运行结果总结2.9.1 引入map相对于set区别,map具有键值和实值,所有元素根据键值自动排序。pair的迪一元素被称为键值,第二元素被称为实值。map也是以红黑树为底层实现机制。map/multimap区别:map是根据key进行排序的所以,key是不能重复的。multimap的key是可以重复的。map常用API见map/multimap容器常用API2.9.2 代码示例map案列t原创 2021-11-21 19:40:42 · 696 阅读 · 0 评论