Where there is a dream ,there is hope

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  64 Posts :: 0 Stories :: 8 Comments :: 0 Trackbacks

常用链接

留言簿(1)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

条款10 和 11不太懂,以后再看看

条款10,注意分配器的协定和约束
如果要自定义分配器
*把你的分配器做成一个模板,带有模板参数T,代表你要分配的内存的对象类型
*提供pointer和reference的typedef,但总是让pointer是T* reference是T&
*通常,分配器不能有非静态的数据成员
*记得应该传给分配器的allocate成员函数需要分配的对象个数而不是字节数,也应该记得这些函数返回T*指针,即时还没有T对象被构造
*一定要提供标准容器依赖的内嵌rebind模板

条款12,对STL容器线程安全性的期待现实一些

template<typename Container>
class Lock
{
public:
 Lock(
const Container container): c( containner ){
  getMutexFor( c );
 }

 
~Lock(){
  releaseMutexFor( c );
 }

private:
const Container& c;

}
;

vector
<int> v;
{
 Lock
< vect< int > > lock( v );
 vector
<int>::iterator first5( find(v.begin() v.end(), 5));
 
if( first5 != v.end()){
  
*first5 = 0;
 }

}


 

posted on 2011-10-12 17:51 IT菜鸟 阅读(297) 评论(0)  编辑 收藏 引用 所属分类: EFFECTIVE-STL学习笔记

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理