随笔分类 - STL模版
摘要:std::pair主要的作用是将两个数据组合成一个数据,两个数据可以是同一类型或者不同类型。例如std::pair<int,float> 或者 std::pair<double,double>等。pair实质上是一个结构体,其主要的两个成员变量是first和second,这两个变量可以直接使用。初始化一个pair可以使用构造函数,也可以使用std::make_pair函数,make_pair函数的定义如下:template pair make_pair(T1 a, T2 b) { return pair(a, b); }一般make_pair都使用在需要pair做参数的
阅读全文
摘要:1, auto_ptr类auto_ptr是一个模板类,定义如下:template <typename Type> class auto_ptr {...};它存储的是一个指向Type的指针。顾名思义,auto_ptr是一种智能指针,它包含一个动态分配内存的指针,并在它生命周期结束的时候,销毁包含的指针所指向的内存。例1:void f() { Type* pt(new Type); //一些代码... delete pt; }这样的代码很常见,但它有可能造成内存泄露。首先你用了new,你就要记得用delete,但即使你记住了用delete,还是会出问题。如果f()在执行delete
阅读全文
摘要:很多情况下,你都需要使用模版参数,但又不知道用户输入的模版参数是否合法,是否在范围之内等,这个时候就可以利用typedef的特性来实现一种模版参数检查机制。例如:template <size_t sz=0> //模版参数sz默认为0class templateClass{ typedef int testArray[(sz<=100&&(sz & sz+1==0)) ? +1 : -1 ]; ……}注明:typedef的这个int testArray显然没有实际意义,他的存在仅仅是为了检查这个模版参数 是否符合标准,就像上面的情况,它是否小于100,并
阅读全文

浙公网安备 33010602011771号