• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
p-boost-q
博客园    首页    新随笔    联系   管理    订阅  订阅

随笔分类 -  STL(C++标准模板库)

reverse_iterator和ostream_iterator

摘要:每个容器都有反向迭代器(无需关联容器除外),reverse_iterator要和std::rbegin()以及std::end()配套使用,否则用了方向迭代器而不用rbegin()和rend()编译器是会报错的;接下来看例子: rbegin()返回的是最后一个元素的reverse_iterator, 阅读全文
posted @ 2019-03-08 10:57 p-boost-q 阅读(243) 评论(0) 推荐(0)
multimap详讲

摘要:multimap和map的区别: 首先认识一下multimap和map的区别: 1> multimap不提供operator[ ]运算符。因为这个运算符的语义在同一个键可以保存多个值的容器multimap里是无意义的。 2> multimap插入元素的时候总是能成功的。所以插入insert()方法只 阅读全文
posted @ 2019-02-21 17:16 p-boost-q 阅读(857) 评论(0) 推荐(0)
map详讲<二>

摘要:查找元素: Map可以根据健来查找元素,提供方法find(key),如果是这个健对应的元素存在,则返回的是这个健的迭代器iterator,否则返回的是std::end(); 使用find()函数有点笨拙,但是还是必须的有时候,如果是只想知道有木有这个健对应的元素,则可以使用count(key),因为 阅读全文
posted @ 2019-02-21 15:41 p-boost-q 阅读(212) 评论(0) 推荐(0)
map详解<一>

摘要:首先了解下pair工具类: 这个类在头文件<utility>,功能:将俩个类型可能不一样的值组合在一起。,通过first和second来访问这两个值。还定义了operator == 和operator <用来比较两个值; 看实例: 结果是: myPair > myOtherPairmyOtherPa 阅读全文
posted @ 2019-02-19 13:27 p-boost-q 阅读(529) 评论(0) 推荐(0)
priority_queue详解

摘要:priority_queue是一个安排好的顺序存储的队列,队首是优先级最高的元素。 Template<class T , class Container = vector<T> , class compare = less<T>> 第一个参数是priority_queue保存的元素类型T,Conta 阅读全文
posted @ 2019-02-19 11:46 p-boost-q 阅读(601) 评论(0) 推荐(0)
容器适配器(一):queue

摘要:除了标准的顺序容器外,STL还提供了3种容器适配器,queue,priority_queue和stack 适配器是对顺序容器的包装,它的作用是简化接口. queue接口十分的简单,只有8个方法。再加上构造函数和比较运算符,push()和emplace() 在queue末尾添加元素。Pop()从头部移 阅读全文
posted @ 2019-02-18 19:38 p-boost-q 阅读(192) 评论(0) 推荐(0)
array详解

摘要:array和vector大致是相同的,区别在于array的大小是固定的。不能增加和缩小。另外array的swap()函数和vector的swap()函数在算法复杂度上是有区别的,array.swap()函数是线性时间复杂度,vector,swap()是常量时间复杂度。在定义array的时候需要两个参 阅读全文
posted @ 2019-02-18 18:17 p-boost-q 阅读(224) 评论(0) 推荐(0)
forward_list详解

摘要:forward_list在头文件<forward_list>中,与list类似,区别就是list时双链表,forward_list是单链表,forward_list只支持前向迭代。在访问第一个元素的时候用的是 before_begin(),这个方法返回的是第一个元素的前一个元素,也就是虚设的元素,不 阅读全文
posted @ 2019-02-18 17:33 p-boost-q 阅读(431) 评论(0) 推荐(0)
list详解

摘要:结果是: 213424bcdcdeskd 阅读全文
posted @ 2019-02-16 10:03 p-boost-q 阅读(207) 评论(0) 推荐(0)
deque详解

摘要:deque是double-ended queue的简称,deque和vector几乎上是一样的,使用的非常少,定义在<deque>头文件里; deque和vector的区别在于: 1)deque支持在首位两端的常量时间插入和删除元素,而vector只支持在末尾插入删除元素(摊还常量时间) 2)deq 阅读全文
posted @ 2019-02-15 15:40 p-boost-q 阅读(570) 评论(0) 推荐(0)
vector详讲(三)实例

摘要:移动语义: push语句有时候会通过移动语义来提高性能 这样做的后果就是再也不能调用myEle了, 在push_back(const T&& val );这样的定义,可以这样: 在C++中emplace的意思就是 "放置到位"的意思。std::vector的方法有emplace_back();这个方 阅读全文
posted @ 2019-02-14 18:50 p-boost-q 阅读(268) 评论(0) 推荐(0)
vector详讲(二)迭代器

摘要:先看一下代码: 每一个容器都定义了一个名为 iterator 的类型,来表示这个容器的迭代器,其中std::begin()返回的是容器中第一个元素的迭代器 这条语句是检查是否超过了这个容器的尾部序列(也就是检查是否越界); 我们要养成一个好习惯,那就是采用前置递增,而不是后置递增,因为前置递增返回的 阅读全文
posted @ 2019-02-13 16:28 p-boost-q 阅读(1092) 评论(0) 推荐(0)
vector详讲(一)

摘要:<vector>头文件里带有两个类型参数的类模板,第一个参数是需要指定的数据类型,第二个是分配器(allocator)类型 template<class T, class Allocator = allocator<T>> class vector; 用分配器来为元素分配内存和释放内存。需要注意的是 阅读全文
posted @ 2019-02-13 13:35 p-boost-q 阅读(237) 评论(0) 推荐(0)

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3