摘要:
查找元素: Map可以根据健来查找元素,提供方法find(key),如果是这个健对应的元素存在,则返回的是这个健的迭代器iterator,否则返回的是std::end(); 使用find()函数有点笨拙,但是还是必须的有时候,如果是只想知道有木有这个健对应的元素,则可以使用count(key),因为 阅读全文
摘要:
首先了解下pair工具类: 这个类在头文件<utility>,功能:将俩个类型可能不一样的值组合在一起。,通过first和second来访问这两个值。还定义了operator == 和operator <用来比较两个值; 看实例: 结果是: myPair > myOtherPairmyOtherPa 阅读全文
摘要:
priority_queue是一个安排好的顺序存储的队列,队首是优先级最高的元素。 Template<class T , class Container = vector<T> , class compare = less<T>> 第一个参数是priority_queue保存的元素类型T,Conta 阅读全文
摘要:
除了标准的顺序容器外,STL还提供了3种容器适配器,queue,priority_queue和stack 适配器是对顺序容器的包装,它的作用是简化接口. queue接口十分的简单,只有8个方法。再加上构造函数和比较运算符,push()和emplace() 在queue末尾添加元素。Pop()从头部移 阅读全文
摘要:
array和vector大致是相同的,区别在于array的大小是固定的。不能增加和缩小。另外array的swap()函数和vector的swap()函数在算法复杂度上是有区别的,array.swap()函数是线性时间复杂度,vector,swap()是常量时间复杂度。在定义array的时候需要两个参 阅读全文
摘要:
forward_list在头文件<forward_list>中,与list类似,区别就是list时双链表,forward_list是单链表,forward_list只支持前向迭代。在访问第一个元素的时候用的是 before_begin(),这个方法返回的是第一个元素的前一个元素,也就是虚设的元素,不 阅读全文
摘要:
结果是: 213424bcdcdeskd 阅读全文
摘要:
deque是double-ended queue的简称,deque和vector几乎上是一样的,使用的非常少,定义在<deque>头文件里; deque和vector的区别在于: 1)deque支持在首位两端的常量时间插入和删除元素,而vector只支持在末尾插入删除元素(摊还常量时间) 2)deq 阅读全文
摘要:
移动语义: push语句有时候会通过移动语义来提高性能 这样做的后果就是再也不能调用myEle了, 在push_back(const T&& val );这样的定义,可以这样: 在C++中emplace的意思就是 "放置到位"的意思。std::vector的方法有emplace_back();这个方 阅读全文
摘要:
先看一下代码: 每一个容器都定义了一个名为 iterator 的类型,来表示这个容器的迭代器,其中std::begin()返回的是容器中第一个元素的迭代器 这条语句是检查是否超过了这个容器的尾部序列(也就是检查是否越界); 我们要养成一个好习惯,那就是采用前置递增,而不是后置递增,因为前置递增返回的 阅读全文