Copy on write写时复制
引用计数是Copy on Write实现的前提。 当然是在共享同一块内存的类发生内容改变时,才会发生Copy-On-Write。比如string类的[]、=、+=、+、操作符赋值,还有一些string类中诸如insert、replace、append等成员函数,包括类的析构时。 修改数据才会触发Copy-On-Write,不修改当然就不会改啦。这就是托延战术的真谛,非到要做的时候才去做。
更新:在最新的STL中,这个特性已经被去掉了。有一个原因是线程不安全!COW其实还是比较危险的。