
STL
xlf13872135090
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Effective STL 第一章 第9条
第9条:慎重选择删除元素的方法 先写总结,在写例子: 1、要删除容器中有特定值的所有对象: 如果容器是vector, string或deque,则使用erase-remove习惯用法 如果容器是list,则使用list::remove 如果容器是一个标准关联容器,则使用它的erase成员函数 2、要删除容器中满足特定判断式(条件)的所有对象: 如果容器是vector、string和d原创 2014-01-09 18:58:35 · 799 阅读 · 0 评论 -
Effective stl 第一章 第7、8条
第7条 如果容器中包含了通过new操作创建的指针,切记在容器对象析构前将指针delete掉。 如果一个容器包含指针,则析构函数不对指针做任何事情,不会对指针所指的对象做delete操作,所以会引起内存泄露原创 2014-01-09 12:48:21 · 817 阅读 · 0 评论 -
STL容器迭代器失效问题
众所周知当使用一个容器的insert或者erase函数通过迭代器插入或删除元素"可能"会导致迭代器失效,因此很多建议都是让我们获取insert或者erase返回的迭代器,以便用重新获取新的有效的迭代器进行正确的操作: view plaincopy to clipboardprint? iter=vec.insert(iter); iter=vec.erase(iter);转载 2014-01-09 15:06:53 · 659 阅读 · 0 评论 -
Effective stl 第6条
第6条 当心C++编译器最烦人的分析机制 当将一个存有整数(int)的文件复制到一个list中时,假设采用: ifstream dataFile("ints.dat"); list data(istream_iterator(dataFile), istream_iterator()); 即将一对istream_iterator传入list的区间构造函数中。 这段代码可能会通过编译,但是原创 2014-01-09 10:43:10 · 924 阅读 · 0 评论 -
Effective stl 第一章 第10条
这隔了一星期没看 看的论文 感觉好久没看书 好久没写代码了 这一不学习就感觉很难进入状态了 我要收心学习了!收心收心 这一章 没仔细看 也没看懂。。。先记一点 回来再补 第10条 了解分配子(allocator)的约定和限制 最后的总结: 1·你的分配子是一个模板,模板参数T代表你为它分配内存的对象的类型。 2·提供类型定义pointer和reference,但是始终让pointer为原创 2014-01-21 11:06:51 · 662 阅读 · 0 评论 -
第2章 vector和string 第13条 第14条
第13条:vector与string优先于动态分配的数组 vector和string可以自己管理自己的内存,是功能完全的STL容器,所以凡是适用于序列式容器的算法都可以使用,数组也可以用于STL算法,但是数组没有提供像begin,end及size这样的成员函数,也没有像iterator reverse_iterator和value_type这样的嵌套类型定义。 string一般都使用了引用计数原创 2014-01-21 14:32:55 · 574 阅读 · 0 评论 -
Effecitve stl 第一章 第12条
第12条:切勿对STL容器的线程安全性有 不切实际的依赖。 对一个STL实现最多只能期望: 1 多个线程读是安全的。多个线程可以同时读一个容器的内容,而且保证是正确的。自然地,在读的过程中,不能对容器有任何写入操作。 2 多个线程对不同的容器做写入操作时安全的。多个线程可以同时对不同的容器做写入操作。 这是所能期望的,而不是所能依赖的,有些实现提供了这些保证,有些则没有。 现在考原创 2014-01-21 12:18:27 · 610 阅读 · 0 评论 -
effective stl 第15条
第15条 注意string实现的多样性 实现string的方式很多。 几乎每个string实现都包含如下信息: 1)字符串的大小(size),即它所包含的字符的个数。 2)用于存储该字符串中字符的内存的容量(capacity)。 3)字符串的值(value),即构成该字符串的字符。 除此之外,一个string还可能包含: 4)它的分配子的一份拷贝。这个字段是可选的。 建立在引用计数原创 2014-01-22 16:11:40 · 581 阅读 · 0 评论 -
STL之迭代器
迭代器分了五种类型,总共有五种迭代器相应型别 以下为源码: //摘自SGI_STL //五种迭代器类型 struct input_iterator_tag(); struct output_iterator_tag(); struct forward_iterator_tag : public input_iterator_tag {}; struct bidirectional_itera原创 2014-02-20 20:58:49 · 591 阅读 · 0 评论