五山口老法师

仰望星空,脚踏实地!

关于STL几点

STL内容虽然看起来很多,单独成书都不是问题(《STL源码剖析》),但从实际使用状况来看,我认为只需要知道以下几点就可以了: 怎么用? 各种STL基本的增删改查怎么使用。每种容器都提供了很多操作,但实际增删改查我们通常只需要掌握透彻一种方式即可。有些功能只是出于通用性考虑才存在的,但对于...

2019-05-09 15:40:04

阅读数 12

评论数 0

STL:priority_queue

模板原型:priority_queue<T,Sequence,Compare> T:存放容器的元素类型 Sequence:实现优先级队列的底层容器,默认是vector<T> Compare:用于实现优先级的比较...

2018-10-19 21:33:26

阅读数 32

评论数 0

Stack:删除并返回栈顶元素?

在C++中,stack提供了删除栈顶元素的算法 stack<int>stk; stk.pop(); 但是有时候,我们希望在删除的同时能够知道这个栈顶元素是什么,而pop()是不能返回栈顶元素的!因此,我们应如下办法: stack&amp...

2018-10-12 08:52:13

阅读数 590

评论数 0

map:根据 value 找 key ?

在之前的学习中,我们在使用map的时候,都是利用key找value。 之前我们使用的函数是find,若存在,返回查找到的指向第一个key的迭代器,若不存在,返回尾后迭代器。 反过头来想一想,我们可不可以根据value找key呢? 答案是肯定的。 我们使用find_if +lambda可以实...

2018-09-26 21:21:17

阅读数 138

评论数 0

string:删除string中指定位置的字符?指定的所有字符?

使用迭代器删除string中指定位置的字符! string str = "huehfudhfruhgfsfgkhdyfsghydff"; string::iterator itr = str.begin(); itr += 2; str.erase(...

2018-09-22 09:02:01

阅读数 5726

评论数 0

map:erase删除元素之后迭代器失效的问题!(iterator not incrementable)

比如我们现在有如下代码: map<string,int>tmp; for(auto i = tmp.begin();i!=tmp.end();++i) { for(int j = 0;j<tmp->...

2018-09-22 08:43:54

阅读数 103

评论数 0

STL泛型算法:reverse

C++ < algorithm > 中定义的reverse函数用于反转在[first,last)范围内的顺序! 命名空间: std template<class BidirectionalIterator&gt...

2018-09-18 14:31:25

阅读数 80

评论数 0

String : string的长度?string的子串?

string的长度 :    size和length没有区别!!! string str; int len = str.length(); int len = str.size(); string的子串 string str; str.substr(n,len) //从第n位开始,长度...

2018-09-17 21:18:33

阅读数 142

评论数 0

map:map指向最后一个元素?指向第一个元素?

要善于利用map的自动排序的特性!默认的是从小到大递增排序!!! map<int,int>res; auto map_at = res.end(); map_at--; //指向最后一个元素! auto map_at = res.begin...

2018-09-17 20:51:51

阅读数 613

评论数 0

map:map是否为空?元素数量?删除元素?

map<int,int>res; res.insert(make_pair(3,6)); res.empty() //是否为空?一般用于条件判断; res.find(3) //返回迭代器,它定位到键为Key的元素,没有找到匹配项就返回m.end(...

2018-09-17 20:48:29

阅读数 225

评论数 0

Vector 把一个vector追加到另一个vector

把一个vector里的元素追加放入另外一个vector std::vector<int> src; std::vector<int> dest; dest.insert(dest.end(), src.be...

2018-09-15 09:00:18

阅读数 1517

评论数 0

Vector 所有元素相加求和

vector中所有的元素求和 为了对vector中的所有元素求和,我们利用accmulate这个函数。 在调用这个函数之前我们必须包含头文件#include <numeric>。切记,一定包含,不然就出错。 int arr[]={10,20,30...

2018-09-15 08:57:48

阅读数 1200

评论数 0

Vector找最大值 最小值

Vector实例: vector<int>tmp; //即设添加有很多元素 找最大值的位置: auto Max_position = max_element(tmp.begin(),tmp.end()); 找最大值:(只需要对迭代器解引用) ...

2018-09-15 08:55:11

阅读数 820

评论数 0

queue:queue清空的方法?

C++中的queue自身是不支持clear操作的,但是双端队列deque是支持clear操作的。 方法一 直接用空的队列对象赋值 queue<int> q1; // process // ... q1 = queue<i...

2018-09-14 22:18:34

阅读数 642

评论数 0

STL系列:关联容器的操作

在C++ 中定义了几种类型用来表示容器关键字和值的类型。 key_type mapped_type value_type 对于set,由于保存的值就是关键字,所以,key_type和value_type是一样的。set的迭代器是const的! 对于set,find调用返回的是一个迭...

2018-09-11 15:22:50

阅读数 44

评论数 0

STL系列:map和unordered_map

map和unordered_map的使用 unordered_map的用法和map是一样的,提供了insert,size,count,find等操作,并且里面的元素也是以pair类型来存贮的。 其底层实现是完全不同的,上方已经解释了,但是就外部使用来说却是一致的。 C++ Map常见用法...

2018-09-11 11:32:41

阅读数 40

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭