STL标准程序库学习笔记
文章平均质量分 68
tz_sz
这个作者很懒,什么都没留下…
展开
-
7 STL迭代器
7 STL迭代器7. 1 迭代器头文件 有几种特殊的迭代器被定义于中。7.2 迭代器类型注意1:比较这两个程序:(1)while(ture){*pos = foo(); ++pos} (2)while(pos != coll.end()){*pos = foo(); ++pos;}对于output迭代器,没有定义operator !=原创 2013-10-04 16:31:02 · 568 阅读 · 0 评论 -
STL之erase,remove
zhuanzai你要erase的元素很容易识别。它们是从区间的“新逻辑终点”开始持续到区间真的终点的原来区间的元素。要除去那些元素,你要做的所有事情就是用那两个迭代器调用erase的区间形式(参见条款5)。因为remove本身很方便地返回了区间新逻辑终点的迭代器,这个调用很直截了当:vectorint> v; // 正如从前v.erase转载 2014-06-19 09:57:56 · 481 阅读 · 0 评论 -
2.2 C++新语言特性
2.2 C++新语言特性2.2.1 templateNontype template 参数: bitset flag32;Default Template parameters: template > class MyClass原创 2013-09-25 14:56:48 · 982 阅读 · 0 评论 -
15 空间配置器
15 空间配置器15.3 C++标准程序库的缺省配置器namespace std{ template > class vector{...};} 注意:如果你需要实作一个容器,其中必须为“非元素型别”之对象分配空间,rebind 15.5 细部讨论注意:allocate()不会对元素进行构造/初始化;construct(point原创 2013-10-28 16:40:05 · 561 阅读 · 0 评论 -
13 Stream
13 Stream13.2 基本的Stream类别和Stream对象原创 2013-10-20 14:02:44 · 609 阅读 · 0 评论 -
13 Stream(续)
13 Stream(续)13.10 连接input stream和output stream1、以tie()完成松耦合如std::cin.tie(&std::cout);可以保证在cin输入之前,一定会情况output缓冲区,此处即对cout调用flush()。如果参数为NULL,则解除连接。 2、以stream缓冲区完成紧耦合:使不同的stream共享同一个缓冲区原创 2013-10-24 17:26:26 · 626 阅读 · 0 评论 -
12 数值
12 数值12.1 复数——1、输入复数时,可以在括号内只写实部,也可以在括号内以逗号隔开实部和虚部。2、复数的各种操作(1)创建,复制和赋值如:std::complex c2(conj(c1));(2)隐式类型转换允许安全转换(如complex转为complex)可以隐式进行,而不安全的转换(如complex转为complex)必须显示进行。原创 2013-10-15 21:14:17 · 806 阅读 · 0 评论 -
6 STL容器
6 STL容器6.1 容器的共通操作6.2 vector——1、vector的容量(可由成员函数capacity()返回)很重要,如果超过就要重新配置内部存储器(很耗时),且和vector相关的所有reference、pointer、iterator都很失效。std::vector v; v.reserve(80); //申请容量,最好不要使用std::vecto原创 2013-10-01 19:16:50 · 781 阅读 · 0 评论 -
11 String
11 String 1、举例#include #include using namespace std;int main(int argc, char** argv) //将各个单词的字母逆序输出{ const string delims(" \t,.;"); string line; while(getline(cin, line)){ string原创 2013-10-10 15:00:35 · 598 阅读 · 0 评论 -
3.3 异常处理
3.3 异常处理3.3.1 标准异常类别语言本身所支持的异常:bad_alloc(new), bad_cast(dynamic_cast), bad_typeid(执行期类型辨识RTTI), bad_exception(违反异常规格)C++标准程序库发生的异常:总是派生自logic_errer或ios_base::failure程序作用域之外发生的异常:range_erro原创 2013-09-26 09:57:14 · 610 阅读 · 0 评论 -
10 特殊容器
10 特殊容器10.1 堆栈——1、核心接口push();top()(最后一个被插入的元素); pop()(移除最后一个被插入的元素,无返回值)。10.2 队列——1、核心接口push();front()(返回第一个插入的元素);back()(返回最后一个元素);pop()(移除第一个插入的元素,无返回值)。原创 2013-10-10 11:06:01 · 526 阅读 · 0 评论 -
9 STL算法
9 STL算法9.1 头文件;某些算法用于数值处理,定义于。9.2 算法概览2、分类(1)非变动性算法:注意:搜索算法的命名方式的混乱:(2)非变动性算法:注意:for_each和transform所接收操作的不同:void square(int& elem) //call-by-reference{elem =原创 2013-10-07 15:17:27 · 579 阅读 · 0 评论 -
5 STL组件
5 STL组件5.2 容器序列式容器:排列次序与置入次序一致,vector、deque、list。关联式容器:元素位置取决于特定的排序规则,set、multiset、map、multimap。容器适配器:stack,queue,priority queue。vector:dynamic array,尾部添加或移除元素非常快速,但在中部或头部安插较慢。deque:双向原创 2013-09-29 19:51:12 · 573 阅读 · 0 评论 -
8 STL仿函数(函数对象)
8 STL仿函数(函数对象)8.1 仿函数特性重载operator()。拥有状态;每个仿函数都有其型别(type);速度比函数指针快。仿函数都是pass by value,好处是可以传递常量和临时表达式(如传递Sequence(1)),缺点是无法存取和改变其最终状态。解决方法:(1)以by refrerence的方式传递仿函数(通过将模板参数显示标示); (2)运用fo原创 2013-10-05 19:57:38 · 738 阅读 · 0 评论