正文
1. swap如此重要
Swap是一個(gè)非常有趣的函數(shù),最初作為STL的一部分來(lái)介紹,它已然變成了異常安全編程的中流砥柱(Item 29),也是在拷貝中應(yīng)對(duì)自我賦值的一種普通機(jī)制(Item 11)。Swap非常有用,恰當(dāng)?shù)膶?shí)現(xiàn)swap是非常重要的,與重要性伴隨而來(lái)的是一些并發(fā)癥。在這個(gè)條款中,我們將探索這些并發(fā)癥以及如何處理它們。
2. swap的傻瓜實(shí)現(xiàn)方式及缺陷
2.1 swap函數(shù)的默認(rèn)實(shí)現(xiàn)
Swap函數(shù)就是將兩個(gè)對(duì)象的值進(jìn)行交換,可以通過(guò)使用標(biāo)準(zhǔn)的swap算法來(lái)實(shí)現(xiàn):
1 namespace std { 2 3 template<typename T> // typical implementation of std::swap; 4 5 void swap(T& a, T& b) // swaps a’s and b’s values 6 7 { 8 9 T temp(a);10 11 a = b;12 13 b = temp;14 15 }16 17 }
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式