码迷,mamicode.com
首页 >  
搜索关键字:effective stl    ( 8046个结果
Effective C++ Item 46 需要类型转换时请为模板定义非成员函数
经验:当我们编写一个 class template, 而它所提供之"与此 template 相关的"函数支持"所有参数之隐式类型转换"时,请将那些函数定义为 "class template内部的 friend 函数"。 示例: template class Rational{ public: Rational(const T &numerator = 0, const T &denominator = 1) // Item 20 对于自定义类型以passed by referenc...
分类:编程语言   时间:2014-07-14 13:52:39    阅读次数:173
POJ 1028 Web Navigation 题解
考查代码能力的题目。也可以说是算法水题,呵呵。 推荐新手练习代码能力。 要增加难度就使用纯C实现一下stack,那么就有点难度了,可以使用数组模拟环形栈。做多了,我就直接使用STL了。 #include #include #include #include using namespace std; int main() { stack forward; stack ba...
分类:Web程序   时间:2014-07-14 13:44:44    阅读次数:149
Effective C++ Item 40 明智而审慎地使用多重继承
经验:多重继承比单一继承复杂。它可能导致新的歧义性,以及对 virtual 继承的需要 示例: class BorrowableItem{ public: void checkOut(); }; class ElectronicGadget{ private: bool checkOut() const; }; class MP3Player: public BorrowableItem public ElectronicGadget {...}; MP3Player mp; mp.checkOut...
分类:编程语言   时间:2014-07-14 13:38:11    阅读次数:240
Effective C++ Item 43 学习处理模板化基类内的名称
经验:可在derived class templates 内通过 "this->" 指涉 base class templates 内的成员名称,或藉由一个明白写出的 "base class 资格修饰符"完成。 示例: class CompanyA{ public: //... void sendCleartext(const std::string &msg); void sendEncrypted(const std::string &msg); //... }; class Company...
分类:编程语言   时间:2014-07-14 13:20:25    阅读次数:263
Effective C++ Item 41 了解隐式接口和编译期多态
经验:class 和 templates 都支持接口和多态。 对 classes 而言接口是显式的,以函数签名为中心。多态则是通过 virtual 函数发生于运行期 对 templates 参数而言,接口是隐式的,奠基于有效表达式。多态则是通过 templates 具体化和函数重载解析(function overloading resolution)发生于编译期。 示例1:显式接口和运行期多态 class Widget{ public: Widget(); virtual ~Widget(); vir...
分类:编程语言   时间:2014-07-14 12:54:57    阅读次数:195
服务器后台程序的内存使用问题
目前我开发的一个服务器后台程序存在这么一个问题,由于我的程序要不断的收发消息,并做统计,统计用的是stl的多重map,在统计中会不断的往map里赛数据。但是每次统计后我都会调用clear()去释放内存,但是似乎并不奏效,仍然会有泄漏的现象。查资料,map的clear是将map内容清空,但是内存并不归还给系统,而是缓冲在内存池里以方便下次调用,有人提出,可以新建一个map,将两个map做swap操作...
分类:其他好文   时间:2014-07-14 11:15:23    阅读次数:318
Effective C++ Item 42 了解 typename 的双重意义
经验:声明 template 参数时,前缀关键字 class 和 typename 可互换。请使用关键字 typename 标识嵌套从属类型名称; 示例1: template void print2nd(const C &container){ C::const_iterator *x;//歧义。如果const_iterator是个static成员变量,x是个global 变量,这里的 *就是乘 //... } 示例2: template void pr...
分类:编程语言   时间:2014-07-14 11:06:02    阅读次数:206
STL源码之vector
STL源码之vector1. SGI的vectorSGI stl vector继承子一个基类:template > class vector : protected _Vector_base在基类中定义了基本的一些操作,并且封装了了vector所需要的基本的三个指针:struct _Vector_....
分类:其他好文   时间:2014-07-13 23:19:35    阅读次数:188
leetcode排列,求第k个排列
stl 中的下一个排列在写一遍忘了写个1个多小时,使用递归写的,错误就在我使用一个list保存当前剩下的数,然后利用k/(n-1)!的阶乘就是删除的数字,但进过观察,比如 list={1,2,3}分成3组:1 {2,3}2 {1,3}3 {1,2}确定位于哪个组,然后确定位于哪个组的第几个nyoj ...
分类:其他好文   时间:2014-07-13 23:06:42    阅读次数:254
STL list 的insert()和erase()
STL list 的insert()和erase(),erase(iter++)
分类:其他好文   时间:2014-07-13 17:51:48    阅读次数:174
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!