一步步学Qt,第十天-Q”STL”与STL-迭代器-补充点

一步步学Qt,第十天-Q”STL”与STL-迭代器-补充点


在之前讨论迭代器的时候忘记了一个东西——隐含共享


隐含共享implicit sharing,或叫做“写时复制”。看代码示例:

 //get values
    QListIterator<int> qlistIterator(list);
    while(qlistIterator.hasNext()){
        cout << qlistIterator.next() << setw(2);
    }
    cout << endl;
在code所示的例子中,若使用STL风格,如下:

//get values by STL
    QList<int>::iterator qlistIteratorSTL = list.begin();
    while(qlistIteratorSTL != list.end()){
        cout << *qlistIteratorSTL++ << setw(2);
    }
在使用Java风格的时候,有了这么一种机制——写时复制,使用这种风格的 时候不会复制产生一个List的副本,在后台会自动的生成一个临时的List副本。正因为有了写时复制的最优化过程,我们在复制一个容器的时候可以和复制一个指针比拟。

写时复制的优点:

优化过程,简单,不需要我们去顾及。不过也不能说她就一定是好的哦。具体你可以参考这里 更多请参看这里,还有这里



转载于:https://www.cnblogs.com/Podevor/archive/2011/09/02/2788122.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值