2007年7月15日

STL笔记(5)条款49:学习破解有关STL的编译器诊断信息

摘要: 条款49:学习破解有关STL的编译器诊断信息 用一个特定的大小定义一个vector是完全合法的, vector v(10); // 建立一个大小为10的vector 而string在很多方面像vector,所以你可能希望可以这么做: string s(10); // 常识建立一个大小为10的string 这不能编译。string没有带有一个int实参的构造函数。我的一个... 阅读全文

posted @ 2007-07-15 22:38 cutepig 阅读(2697) 评论(2) 推荐(0) 编辑

STL笔记(4)关于erase,remove

摘要: 你要erase的元素很容易识别。它们是从区间的“新逻辑终点”开始持续到区间真的终点的原来区间的元素。要除去那些元素,你要做的所有事情就是用那两个迭代器调用erase的区间形式(参见条款5)。因为remove本身很方便地返回了区间新逻辑终点的迭代器,这个调用很直截了当: vector v; // 正如从前v.erase(remove(v.begin()... 阅读全文

posted @ 2007-07-15 22:05 cutepig 阅读(6090) 评论(0) 推荐(0) 编辑

STL笔记(3) copy()之绝版应用

摘要: 我选用了一个稍稍复杂一点的例子,它的大致功能是:从标准输入设备(一般是键盘)读入一些整型数据,然后对它们进行排序,最终将结果输出到标准输出设备(一般是显示器屏幕)。这是一种典型的处理方式,程序本身具备了一个系统所应该具有的几乎所有的基本特征:输入 + 处理 + 输出。你将会看到三个不同版本的程序。第一个是没有使用STL的普通C++程序,你将会看到完成这样看似简单的事情,需要花多大的力气,而且还未必... 阅读全文

posted @ 2007-07-15 21:16 cutepig 阅读(4072) 评论(1) 推荐(0) 编辑

导航