随笔分类 -  STL学习

摘要:STL中迭代器的分类 五类迭代器如下: 1、输入迭代器:只读,一次传递 为输入迭代器预定义实现只有istream_iterator和istreambuf_iterator,用于从一个输入流istream中读取。一个输入迭代器仅能对它所选择的每个元素进行一次解析,它们只能向前移动。一个专门的构造函数定 阅读全文
posted @ 2020-06-02 09:32 少年π 阅读(793) 评论(0) 推荐(0)
摘要:STL中实现的链表是双向链表; 关于其描述可以看下面的博客: https://blog.csdn.net/xiaoquantouer/article/details/70339869 值得一提的是: 我们需要关注一下list的构造函数, 以及merge()方法(将两个有序链表合并) reverse( 阅读全文
posted @ 2020-04-26 11:20 少年π 阅读(183) 评论(0) 推荐(0)
摘要:<<STL源码剖析>>中的描述: 上图表明了关于sort算法的两大要点: sort(randomacessiterator it1,randomacessiterator it1)即,sort算法的输入形参是两个,而且必须都是随机迭代器(貌似只有vector和deque满足?) sort默认的排序结 阅读全文
posted @ 2020-04-21 09:22 少年π 阅读(409) 评论(0) 推荐(0)
摘要:STL中的find()函数,提供了强大的功能。 当我们判断一个字符串是否包含另一个字符串的时候,可以使用find(); 如下图: #include <iostream> #include <string> using namespace std; int main() { string a="abc 阅读全文
posted @ 2020-04-19 20:13 少年π 阅读(7079) 评论(0) 推荐(0)
摘要:网址:https://blog.csdn.net/weixin_43736974/article/details/87202381 一、queue(队列)简介: 队列也是一种逻辑数据结构,其具有先进先出的特性,只能在队的前端进行删除, 在队的后端进行插入。针对这种特性,可以实现一些较为复杂的逻辑。在 阅读全文
posted @ 2020-04-05 13:18 少年π 阅读(2649) 评论(0) 推荐(0)
摘要:STL中实现了hash_set,hash_map;那么hash_set和set有何区别呢(hash_map和map同理) 区别就在于:set底层的实现机制是红黑树RB—tree,而hash_set的底层实现机制是hash_table;那么说到这里,自然就能够想到的事情就是: set的具有排序功能,查 阅读全文
posted @ 2020-03-28 15:34 少年π 阅读(267) 评论(0) 推荐(0)
摘要:关于hash_table讲解不错的网址:https://www.cnblogs.com/idreamo/p/7990860.html 在<<STL源码剖析>>中,vector封装了数组的数据结构,list封装了链表的结构,而set和map封装了二叉树的数据结构。那么hashtable,具有怎么的作用 阅读全文
posted @ 2020-03-28 13:42 少年π 阅读(331) 评论(0) 推荐(0)
摘要:vector可以说是使用最为频繁的STL容器,那么这个高频使用的容器,其构造函数有: vector的构造函数 构造函数 作用 举例 vector(); 创建一个没有任何元素的空向量 vector<int>v1 vector(vector&& _Right); 创建一个向量,并使用向量_Right初始 阅读全文
posted @ 2020-03-08 21:05 少年π 阅读(986) 评论(0) 推荐(0)
摘要:对于有些编译器而言,使用vector<vector<int>> vec;并不能通过,必须采用vector<vector<int> >vec才可以通过。两者的区别在于>> 和 > >,即>和>之间应该有空格。 关于利用vector<vector<int> > vec定义一个二维矩阵,如果想获取vec的 阅读全文
posted @ 2020-01-15 21:59 少年π 阅读(4923) 评论(0) 推荐(0)
摘要:熟悉c风格的矩阵定义,那么用纯c++特性vector如何定义一个矩阵呢? 1 # include<vector> 2 # include <iostream> 3 int main() 4 { 5 using namespace std; 6 vector<vector<int>> array(3) 阅读全文
posted @ 2019-08-21 22:22 少年π 阅读(4582) 评论(0) 推荐(1)
摘要:在此,不再赘述迭代器本身的意义和作用,本质上,迭代器就是一种泛型指针。但是不同的容器对应的迭代器是不同的,我们使用迭代器的时候,需要认识到: 知道迭代器的类型是一件很重要的事情。 在此,给出一个描述迭代器很好的博客:https://blog.csdn.net/qq_23100787/article/ 阅读全文
posted @ 2019-04-25 15:54 少年π 阅读(141) 评论(0) 推荐(0)
摘要:map实际采用了红黑树的实现,在此,我们先不讨论map的底层实现结构原理,先来看看map究竟是怎么用,以及我是怎么看待map的. 先上代码: 1 #include <map> 2 #include <string> 3 #include <iostream> 4 using namespace st 阅读全文
posted @ 2019-04-24 19:08 少年π 阅读(266) 评论(0) 推荐(0)