![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 54
super seven
这个作者很懒,什么都没留下…
展开
-
vector与list的比较
本博客只作为自己笔记使用 vector和list的相同点: 都是STL中的序列式容器 vector和list的不同点: 1.底层结构: vector是一段连续的空间,用动态顺序表实现,而list是一个带头结点的双向链表; 2.是否支持随机访问: vector支持随机访问,list不支持随机访问 vector访问某个元素的效率为O(1), list访问某个元素的效率为O(n) 3.任意位置插入和删除元素的效率: vector中效率低,时间复杂度为O(n),list中效率高,时间复杂度为O(1) 原因转载 2021-09-19 22:35:09 · 3134 阅读 · 0 评论 -
set与unordered_set的对比
本博客只作为 集合是一个关联容器,其中包含一组排序的键类型的唯一对象。每个元素只能出现一次,因此不允许重复。用户可以通过以任何顺序插入元素来创建集合,集合将返回排序后的数据给用户,这意味着集合包含用于对从用户抽象的数据进行排序的定义。 可以使用set的主要原因是- 当排序的数据是必需的 当不需要重复值时,仅需要唯一数据 当我们要使用二进制搜索树而不是哈希表时。 如果有一个与搜索时间没有问题,因为它需要的log(n)的复杂性中搜索 输入- set={2,1...原创 2021-09-19 22:27:01 · 1314 阅读 · 0 评论 -
map与unordered_map的简单对比
本博客只作为个人笔记使用: 原理 map: 内部实现了一个红黑树(红黑树是非严格平衡二叉搜索树,而AVL是严格平衡二叉搜索树),红黑树具有自动排序的功能,因此map内部的所有元素都是有序的,红黑树的每一个节点都代表着map的一个元素。因此,对于map进行的查找,删除,添加等一系列的操作都相当于是对红黑树进行的操作。map中的元素是按照二叉搜索树(又名二叉查找树、二叉排序树,特点就是左子树上所有节点的键值都小于根节点的键值,右子树所有节点的键值都大于根节点的键值)存储的,使用中序遍历可将键值按照从小到大遍历转载 2021-09-19 22:14:03 · 199 阅读 · 0 评论 -
Vector迭代器失效原因
造成失效的原因是因为内存的重新分配, 保留下来的迭代器不再指向容器中原来的元素 迭代器失效的两个层面:1. 无法通过迭代器++,--操作遍历整个stl容器。记作: 第一层失 效。 2. 无法通过迭代器存取迭代器所指向的内存。 记作: 第二层...原创 2021-09-19 21:57:33 · 1183 阅读 · 0 评论 -
C++vector
转载C++ vector的用法(整理)_wkq0825的专栏-CSDN博客 本博客只作为本人笔记 vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。vector 是C++ STL的一个重要成员,使用它时需要包含头文件: #include<vector>; 一、vector 的初始化:可以有五种方式,举例说明如下: (1) vector<int> a(10); //定义了10个整型元素的向量(尖括号中为元素类型名,它可以是任何合法的转载 2021-09-18 21:14:39 · 66 阅读 · 0 评论 -
C++迭代器——续
本博客只作为本人笔记: (1) 每种容器类型都定义了自己的迭代器类型,如vector: vector<int>::iterator iter;这条语句定义了一个名为iter的迭代器,它的数据类型是由vector<int>定义的iterator类型。 (2)const_iterator迭代器类型 只能读取容器中的元素,而不能修改。 for(vector<int>::const_iterator citer=ivec.begin();citer!=ivec.end();原创 2021-09-18 17:03:31 · 58 阅读 · 0 评论 -
C++迭代器
一:迭代器定义 容器分为顺序容器,关联容器,容器适配器等 顺序容器,关联容器也叫做一级容器; 要访问顺序容器和关联容器中的元素,需要通过“迭代器(iterator)”进行。迭代器是一个变量,相当于容器和操纵容器的算法之间的中介。迭代器可以指向容器中的某个元素,通过迭代器就可以读写它指向的元素。从这一点上看,迭代器和指针类似。(可以简单认为迭代器就是容器里面的指针)。 二:迭代器的分类 1.输入迭代器(input iterator) input iterator就像其名字所说的...原创 2021-08-23 15:54:04 · 155 阅读 · 0 评论 -
C++循环控制语句
本博客只作为自己的一个笔记使用: C++ 中break语句有以下两种用法: 当break语句出现在一个循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句。 它可用于终止switch语句中的一个 case。 如果您使用的是嵌套循环(即一个循环内嵌套另一个循环),break 语句会停止执行最内层的循环,然后开始执行该块之后的下一行代码。 C++ 中的continue语句有点像break语句。但它不是强迫终止,continue 会跳过当前循环中的代码,强迫开始下一次循环...原创 2021-08-16 15:28:36 · 426 阅读 · 0 评论 -
C++循环三个基本循环语句
本博客只作为自己的一个笔记使用: while循环的语法: while(condition) { statement(s); } for循环的语法: for ( init; condition; increment ) { statement(s); } 下面是 for 循环的控制流: init会首先被执行,且只会执行一次。这一步允许您声明并初始化任何循环控制变量。您也可以不在这里写任何语句,只要有一个分号出现即可。 接下来,会判断condition。如果为真,则执行循...原创 2021-08-16 15:22:48 · 405 阅读 · 0 评论