一步步学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副本。正因为有了写时复制的最优化过程,我们在复制一个容器的时候可以和复制一个指针比拟。
写时复制的优点:
优化过程,简单,不需要我们去顾及。不过也不能说她就一定是好的哦。具体你可以参考这里 更多请参看这里,还有这里