随笔分类 -  STL

摘要:反向迭代器(Reverse Iterator)是普通迭代器的适配器,通过重新定义自增和自减操作,以达到按反序遍历元素的目的。如果在标准算法库中用反向迭代器来代替普通的迭代器,那么运行结果与正常情况下相反。除此之外,其用法与普通迭代器完全一样,我们不作详细讨论。 反向迭代器reverse_iterat 阅读全文
posted @ 2017-05-11 19:06 Boblim 阅读(11042) 评论(0) 推荐(4) 编辑
摘要:一、插入相同键元素操作 (1)insert方法 在map中的键必须是唯一的,当想map中连续插入键相同但值不同的元素时,编译和运行时都不会发生任何错误,系统会忽略后面的对已存在的键的插入操作,如 在第二行和第三行分别插入键都为1,但值不同的数据,此操作会忽略第三行的插入操作,其程序运行结果为: 通过 阅读全文
posted @ 2017-03-10 11:14 Boblim 阅读(6246) 评论(0) 推荐(0) 编辑
摘要:先看一段代码: 代码首先在一个deque中插入1到9,然后查找元素值为2和7的位置,分别赋值给迭代器pos1和pos2,然后输出,由于STL中的操作总是左开右闭的区间,即[2,7),所以输出2 3 4 5 6,7不会输出。 接下来将迭代器转换成逆向迭代器,再次输出,对于反向迭代器,由于是反向,所以按 阅读全文
posted @ 2016-11-24 15:18 Boblim 阅读(2131) 评论(0) 推荐(0) 编辑
摘要:map中的lower_bound和upper_bound的意思其实很简单,就两句话: map::lower_bound(key):返回map中第一个大于或等于key的迭代器指针 map::upper_bound(key):返回map中第一个大于key的迭代器指针 所以,理解这两个函数请不要按照字面意 阅读全文
posted @ 2016-11-24 13:50 Boblim 阅读(6488) 评论(2) 推荐(0) 编辑
摘要:equal_range是C++ STL中的一种二分查找的算法,试图在已排序的[first,last)中寻找value,它返回一对迭代器i和j,其中i是在不破坏次序的前提下,value可插入的第一个位置(亦即lower_bound),j则是在不破坏次序的前提下,value可插入的最后一个位置(亦即up 阅读全文
posted @ 2016-10-27 19:14 Boblim 阅读(8702) 评论(0) 推荐(2) 编辑
摘要:今天无论如何要写点东西,算是搞清楚了一点东西吧。有点小小的成就感。 之前在程序里面使用了list容器,其中用到了erase()函数,之前一直没出现问题,这两天突然莫名奇妙。花了点时间,搞清楚了erase()函数的机理。 常用的删除容器中元素的方法是如下(方法1): list< int> List; 阅读全文
posted @ 2016-09-21 14:43 Boblim 阅读(5266) 评论(1) 推荐(0) 编辑
摘要:Lists将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢. assign() 给list赋值 back() 返回最后一个元素 begin() 返回指向第一个元素的迭代器 clear() 删除所有元素 empty() 如果list是空的则返回 阅读全文
posted @ 2016-09-20 16:57 Boblim 阅读(35844) 评论(2) 推荐(0) 编辑
摘要:最近在写一个项目,项目中需要获得类下面的所有对象,所以我采用了map容器,以string为关键字,list容器为内容来进行查找,而list中是一些struct结构体。由于在插入操作的时候需要判断该对象是否存在,所以需要对list的对象进行查找。我不太喜欢用ForEach的方法,所以采用了标准模板fi 阅读全文
posted @ 2016-09-20 15:28 Boblim 阅读(5029) 评论(0) 推荐(0) 编辑
摘要:STL中的每个算法都非常精妙,接下来的几天我想集中学习一下STL中的算法。 ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于等于值val 阅读全文
posted @ 2016-09-06 13:34 Boblim 阅读(2370) 评论(0) 推荐(0) 编辑
摘要:Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一 种非严格意义上 阅读全文
posted @ 2016-09-02 12:29 Boblim 阅读(659752) 评论(7) 推荐(67) 编辑
摘要:转自:http://www.cnblogs.com/wang7/archive/2012/04/27/2474138.html 在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。 1 基本操作 (1)头文件#include<vector>. (2)创建vector对象,vect 阅读全文
posted @ 2016-09-02 10:33 Boblim 阅读(1000) 评论(0) 推荐(0) 编辑
摘要:C/C++ string库(string.h)提供了几个字符串查找函数,如下: memchr 在指定内存里定位给定字符 strchr 在指定字符串里定位给定字符 strcspn 返回在字符串str1里找到字符串str2里的任意一个字符之前已查找的字符数量 strrchr 在字符串里定位给定字符最后一次出现的位置 strpbrk 在字符串str1里定位字符串str2里任意一个首次出现的... 阅读全文
posted @ 2016-09-02 10:14 Boblim 阅读(18700) 评论(2) 推荐(1) 编辑
摘要:在写C++程序中,总会遇到要从一个字符串中查找一小段子字符串的情况,对于在C中,我们经常用到strstr()或者strchr()这两种方法。而对于C++的string,我们往往会用到find()。 C++:#inlcude<string>C: #include<string.h>find():在一个 阅读全文
posted @ 2016-09-01 21:42 Boblim 阅读(94656) 评论(2) 推荐(4) 编辑

点击右上角即可分享
微信分享提示