ITPub博客

首页 > IT职业 > IT生活 > effective STL学习笔记(1)

effective STL学习笔记(1)

原创 IT生活 作者:thunderbird2 时间:2007-07-25 15:11:01 0 删除 编辑

容器使用对象的方法

[@more@]

条款3:使容器里对象的拷贝操作轻量而正确

1. STL的工作方式:拷进去,拷出来当你从容器中获取一个对象时,你所得到的对象不是容器里的那个对象。取而代之的是,当你向容器中添加一个对象(比如通过insert或push_back等),进入容器的是你指定的对象的拷贝

2. 容器中直接放入对象的问题

(1) (顺序容器)存在大量的数据移动,效率低

(2) 如果存在继承,则拷贝会导致分割

3. 解决方法

建立指针的容器而不是对象的容器

4. STL设计

STL进行了大量拷贝,但它通常设计为避免不必要的对象拷贝(与数组相比较)。如果声明一个含有num个数组,则就会有num个对象产生,而使用容器不会出现这种情况。

条款4:用empty来代替检查size()是否为0

原因:

对于所有的标准容器,empty是一个常数时间的操作,但对于一些list实现,size花费线性时间。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/32405/viewspace-928009/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-02-06

  • 博文量
    13
  • 访问量
    18518