本文主要内容如下:1.vector1.1vector的定义1.2vector容器内元素的访问1.3vector常用函数2.set2.1 set的定义2.2set容器内元素的访问2.3set常用函数3.string3.1 string 的定义3.2string容器内元素的访问3.3string 常用函数4.map4.1 map的定义4.2 map容器内元素的访问4.3 map常用函数5. queue
原创 2017-05-22 14:08:17
492阅读
一、相关定义 set 集合,有唯一性,即每一个元素只有一个; 是一个有序的容器,里面的元素都是排序好的; 支持插入,删除,查找等操作。 注意 set中的元素可以是任意类型的,但是由于需要排序,所以元素必须有一个序,即大小的比较关系,比如整数可以用“<”比较; 不能直接改变元素值,因为那样会打乱原本正
转载 2017-08-02 22:43:00
168阅读
2评论
一、相关定义 原理:stack队列是一个线性存储表,插入和删除只在栈顶进行,从而构成了一个后进先出LIFO表。 入栈&出栈:元素的插入称为入栈,元素的删除称为出栈。 stack是一种关联容器,是通过简单地修饰线性类deque的接口而获得的另一种“容器类”,往往被归结为配接器(adapter)而不是容
转载 2017-08-01 10:49:00
97阅读
2评论
1、排序算法描述 键盘输入 5 个整数,使用 vector 进行存储,使用 STL 排序算法对元素进行排序(从大到小),再使用 STL 遍历算法输出元素。(元素和元素之间使用空格隔开) 输入描述: 键盘输入 5 个整数 输出描述: 输出排序后的元素,元素和元素之间使用空格隔开。#include <iostream> #include <vector> // write yo
原创 2023-08-26 08:43:10
163阅读
set 底层实现是用红黑树。 set 建立 set<int> s; // 不可重,默认升序 set<int,less> s; // 不可重,升序 set<int,greater> s; // 不可重,降序 multiset<int> s; // 可重集 set 也可以重载,利用结构体实现。 重载方式 ...
转载 2021-08-30 20:18:00
163阅读
2评论
一、相关定义 原理:queue 队列也是一个线性存储表,元素数据的插入在表的一端进行,在另一端删除,从而构成了一个先进先出FIFO(First In First Out)表。 队头&队尾:插入一端称为队尾,删除一端称为队首。 C++队列是一种容器适配器,默认使用双端队列deque来实现,将 dequ
转载 2017-08-01 00:05:00
132阅读
2评论
1.string(顺序容器)(支持快速访问)string strstr(str1,str2)//判断字符串2是否是字符串1的字串,是返回2在1中首次出现的地址,否则返回NULL str.c_str() //将str转化为字符数组的形式。 str.length()||str.size() //长度 *O(n)* str.substr(b,c)//截取[b,c)包括
原创 2023-04-23 18:36:12
360阅读
STL的诞生* 长久以来,软件界一直希望建立一种可重复利用的东西C++的面向对象和泛型编程思想,
原创 2022-09-22 09:58:55
108阅读
一、相关定义 map 关联容器,存储相结合形成的一个关键值和映射值的元素 提供一对一(第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可以称为该关键字的值)的数据处理能力 map对象是模板类,需要关键字和存储对象两个模板参数 特征 Map 是一种Pair Associative Con
转载 2017-08-03 11:01:00
141阅读
2评论
一、相关定义 list 链表,分配的内存不连续 可以高效地进行插入/删除元素 不可随机访问,访问速度慢 特征 只能通过迭代器来访问list中的元素 在头和尾都可以插入元素 二、list 【前提条件】 #include<list> using std::list; 【迭代器】 list<int>::i
转载 2017-08-03 09:34:00
125阅读
2评论
一、相关介绍 STL 标准模板 在编写代码的过程中有一些程序经常会被用到,而且需求特别稳定,所以C++中把这些常用的模板做了统一的规范,慢慢的就形成了STL 提供三种类型的组件: 容器、迭代器和算法,它们都支持泛型程序设计标准 容器 顺序容器(vector、list、deque):通过元素在容器中
转载 2017-08-02 22:54:00
79阅读
2评论
一、相关定义 vector 数组 随机访问迭代器 快速随机访问元素 尾部进行快速随机地插入和删除操作 特征: 能够存放任意类型; 访问vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成; 查找特定值的元素所处的位置或是在vector中插入元素则是线性时间复杂度。 二、vector
转载 2017-08-02 10:58:00
139阅读
2评论
C++STL
c++
原创 2023-05-18 11:51:57
85阅读
C++STL模板操作队列!
原创 2021-12-30 17:15:36
149阅读
C++STL模板操作队列!
原创 2022-03-07 11:42:26
116阅读
STL容器篇
原创 2021-07-13 17:12:36
149阅读
C++STL算法篇
原创 2021-07-13 17:13:19
526阅读
前言 上一章节主要是详细介绍了C++STL迭代器,并且简单模拟了一下list中的容器,不清楚的可以回顾一下哦。本章节主要针对于C++算法做个详细介绍。STL中算法大致分为四类: 非可变序列算法:不...
原创 2021-08-05 17:42:28
195阅读
前言 上一章节主要是详细介绍了C++泛型编程基础,不清楚的可以回顾一下哦。本章节主要针对于C++STL(标准模板类)做个详细介绍。标准模板类也就是别人写的模板类,主要内容是各种数据结构的...
原创 2021-08-05 22:09:06
261阅读
当数组需要增长时,它不是仅仅申请所需的最小空间,而是会一次性申请一块更大的内存(例如,每次扩容为当前容量的 1.5 或 2 倍)。这样,在接下来插入多个元素时,只要数量不超过预分配的空间,就无需再次触发昂贵的扩容过程。我们在扩容的时候,会重新开辟空间,释放旧的空间,若在此前使用了迭代器,则扩容之后迭代器所指的空间还是旧空间中的一个地址,因此成为野指针。扩容时的代价较高,需要申请空间,拷贝数据,释放旧内存空间,因此我们应尽量减少扩容的次数。:只复制指针地址,不复制指针指向的数据,导致多个对象共享同一块内存。
转载 21天前
440阅读
  • 1
  • 2
  • 3
  • 4
  • 5