您的位置:首页 > Web前端

阅读effective stl 有感(二)

2017-04-22 16:00 274 查看
stl的条款:

1. 容器里容纳的对象是通过拷贝复制构造函数进行复制的结果,考进去,然后拷出来。以基类对象建立一个容器,而试图插入派生类,那么派生类对象通过拷贝构造函数到容器中时候,派生类部分会被删掉,所以需要建立指针容器。

2. 用empty来检查size为0。empty是一个常数时间的操作,但对于一些list实现,size花费线性时间。

3. 尽量使用区间成员函数代替它们的单元素兄弟,尽量不要手写循环!    !     !     !    !    !     !     !     !    !    !    多用assign和insert

4.

声明了一个函数f带有一个double而且返回一个int:int f(double d);

int f(double (d)); // 同上;d左右的括号被忽略

int f(double); // 同上;参数名被省略

int g(double (*pf)()); // g带有一个指向函数的指针作为参数

int g(double pf()); // 同上;pf其实是一个指针

int g(double ()); // 同上;参数名省略

5. 当使用new得指针的容器时,记得在销毁容器前delete那些指针,或者使用智能指针boost::share_ptr

永不建立auto_ptr的容器

6. 对于一个连续内存容器(vector、deque或string),最好的方法是erase-remove惯用法。list直接remove,当是关联容器时候,erase。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: