STL学习笔记
文章平均质量分 69
hhys08120
这个作者很懒,什么都没留下…
展开
-
auto_ptr智能指针
1、Class auto_ptr 这个智能指针应该保证,无论在何种情形下,只要自己被摧毁,就一定连带释放其所指资源。而由于智能型指针本身就是区域变量,所以无论是正常退出,还是异常退出,只要函数退出,它就一定会被销毁。 注意:auto_ptr不允许使用一般指针惯用的赋值(assign)初始化方式。必须直接使用数值来完成初始化: s td::auto_ptrptr原创 2013-04-06 14:51:22 · 353 阅读 · 0 评论 -
算法(Algorithm)
算法(Algorithm) 处理多个区间 如果某个算法用来处理多个区间,那么当你调用它时,务必确保第二(以及其他)区间所拥有的元素个数,至少和第一区间内的元素个数相同。 要想让目标区间够大,你要不一开始就给他一个正确大小,要不就显式地改变其大小。这两个办法都只适用于序列容器(vectors,deques,lists)。关联式容器根本不会有此问题,因为关联式容器不可能被当做覆写型算法的操作目标原创 2013-04-08 22:35:32 · 506 阅读 · 0 评论 -
使用者自定义User-Defined的迭代器
以下实例说明如何编写自定义的迭代器。这事一个关联式容器的Insert迭代器,虾米那是其实作代码 #include using namespace std; //template class for insert iterator for associative containers template class asso_insert_iterator:public iterator { p原创 2013-05-15 14:59:12 · 361 阅读 · 0 评论 -
STL Container
1、以标准输入装置完成初始化操作: vector vec((std::istream_iterator(cin)),(std::istream_iterator())); 注意不要遗漏了涵括“初始化参数”的那对“多余的”括号,否则这个表达式的意义会迥然不同。 以标准输出堵操作: //print elements separated with spaces copy(vec.beg原创 2013-05-07 20:31:36 · 461 阅读 · 0 评论 -
Sets 执行期制定排序准则
无论是将排序准则作为第二个template参数传入,或是采用缺省的排序准则less #include #include #include"print.h" using namespace std; //type for sorting criterion template class RuntimeCmp{ public: enum cmp_mode{normal,rever原创 2013-05-09 21:32:07 · 546 阅读 · 0 评论 -
运用maps strings 并于执行期指定排序准则
#include #include #include #include #include using namespace std; //function object to compare strings //allows you to set the comparison criterion at runtime and compare case insensitive原创 2013-05-11 11:16:38 · 489 阅读 · 0 评论 -
数组外包装为STL容器
下面介绍一个很有用的数组包装类别,性能不输一般的数组,而且更安全。这是“使用者自行定义STL容器”的一个很好的例子。该容器所使用的,就是包装法:在数组之外包装一层常用的容器界面。 Class carray定义如下: //carray.h #include template class carray{ private: T v[thesize]; //fixed-size array原创 2013-05-11 17:25:23 · 761 阅读 · 0 评论