参考《21天学通C++》第25、第26、第28章节,对STL位标志、智能指针与C++异常处理进行介绍。
一、使用STL位标志
位是存储设置与标志的高效方法。标准模板库提供了可帮助组织与操作位信息的类。
1. bitset类
std::bitset不是STL容器类,因为它不能调整长度,这是一个实用类,针对处理长度在编译阶段已知的位序列进行了优化。需包含#include 。
2. 实例化bi...
分类:
编程语言 时间:
2015-08-09 18:49:13
阅读次数:
149
基于范围的for循环:
对于内置数组以及包含方法begin()和end()的类(如std::string)和STL容器,基于范围的for循环可以简化为他们编写循环的工作。这种循环对数组或容器中的每个元素执行指定的操作:#include
int main()
{
double prices[5] = {4.99,10.99,6.87,7.99,8.49}...
分类:
编程语言 时间:
2015-08-02 21:40:47
阅读次数:
136
一、STL集合类
标准模板库向程序员提供了一些容器类,以便在应用程序中频繁而快速的搜索。std::set和std::multiset用于存储一组经过排序的元素,其查找元素的复杂度为对数,而unordered集合的插入和查找时间是固定的。
容器set和multiset快速查找键,键是存储在一维容器中的值,multiset可存储重复的键值,而set不行。STL容器是泛型模板类,可用于存储字符串、整...
分类:
编程语言 时间:
2015-08-02 16:49:00
阅读次数:
143
还是很喜欢effective部分的书,看了好几遍,这里把stl中和容器相关的一些基本的注意的点进行介绍总结,之后对迭代器等进行总结
1 对序列容器中需要逐个删除的时候,不能像关联容器那样事先对迭代器进行++操作,因为删除一个迭代器,会使他自己无效,后面的迭代器也无效,所以应该保存删除erase返回的下一个指针的值。而关联容器中并不会导致后面的迭代器无效的情况
2 在stl中如果对容器内对象...
分类:
其他好文 时间:
2015-08-01 19:05:42
阅读次数:
83
STL中最简单也是最有用的容器之一是vector类模板,称为向量容器,是序列类型容器中的一种。 容器容量可以选择性修改。(1)声明:vector v; //容量为0构造v对象,指定元素类型为typevector v(n); //容量为n构造v对象,指定元素类型为typevector v(n, in....
分类:
其他好文 时间:
2015-07-28 23:02:12
阅读次数:
114
??
STL容器之优先队列
优先级队列,以前刷题的时候用的比较熟,现在竟然我只能记得它的关键字是priority_queue(太伤了)。在一些定义了权重的地方这个数据结构是很有用的。
先回顾队列的定义:队列(queue)维护了一组对象,进入队列的对象被放置在尾部,下一个被取出的元素则取自队列的首部。priority_queue特别之处在于,允许用户为队列中存储的元素设置优先级。这种队列不...
分类:
其他好文 时间:
2015-07-28 18:48:47
阅读次数:
115
1.介绍顺序存储容器 : string、vector、list、deque关联存储容器:map底层采用的是树型结构,多数使用平衡二叉树实现,查找某一值是常数时间,遍历起来效果也不错, 只是每次插入值的时候,会重新构成底层的平衡二叉树,效率有一定影响. set 和map都是无序的保存元素,只能通过它提...
分类:
其他好文 时间:
2015-07-20 23:20:06
阅读次数:
146
STL的容器可以分为以下几个大类: 一:序列容器, 有vector, list, deque, string.二 : 关联容器, 有set, multiset, map, mulmap, hash_set, hash_map, hash_multiset, hash_multimap三: 其...
分类:
其他好文 时间:
2015-07-20 22:54:36
阅读次数:
121
本篇的两个主角是分配例程和归还例程(allocation and deallocation routines,也就是operator new和operator delete),配角是new_handler,这是当operator new无法满足客户的内存需求时所调用的函数。STL容器所使用的heap...
分类:
编程语言 时间:
2015-07-20 19:08:33
阅读次数:
145