item 26. prefer iterator to const iterator, reverse_iterator, and const_reverse_iterator.
上面一段話,是《effective stl》中的一節。我在下面簡單摘抄了一下:
我之所以要將上述貼在這裡,是因為,我在實際運用中,需要用到iterator向const_iterator的轉化,雖然我知道在vs下,iterator可以隱式轉化為const_iterator,但是,編寫的程式需要在linux下執行,所以有些猶豫,故認真查詢了一下。
對於上面的第一點,有些需要說明:
(1)在c++11之後,insert,erase函式的第乙個引數,已經由iterator改為const_iterator。這個也非常合理,因為,原來傳入iterator的呼叫,現在可以隱式轉變為const_iterator,而且新的函式可以接受const_iterator的引數。
(2)reverse_iterator和const_reverse_iterator並不能傳入insert,erase之類的函式,雖然從感覺上來看,reverse_iterator應該是乙個iterator,const_reverse_iterator應該是const_iterator,可能將傳入的引數,用forward_iterator之類的名字可能會更好,然而forward_iterator總是會讓人想到forward_iterator_tag,在模板使用中,很多時候會使用類似於forwarditerator之類的名字。
簡單原理描述
之所以是電動懸浮,是因為用於切割導體使之感應出電流的磁場是有通有交流電的線圈產生,導體在此磁場下,導體與磁場有相對的位移,這時候就會在導體產生環形感應電流進而產生乙個與原磁場方向相反的磁場,磁性相反體現出斥力。其本質就是將乙個旋轉電機沿著軸向將其切開展平。乙個單元的直線電機有三個相位差120 的交流...
DFS 簡單描述
深度優先遍歷圖的方法是,從圖中某頂點v出發 1 訪問頂點v 2 依次從v的未被訪問的鄰接點出發,對圖進行深度優先遍歷 直至圖中和v有路徑相通的頂點都被訪問 3 若此時圖中尚有頂點未被訪問,則從乙個未被訪問的頂點出發,重新進行深度優先遍歷,直到圖中所有頂點均被訪問過為止。當然,當人們剛剛掌握深度優先搜...
Linq to object簡單描述
學習linq to object時,經常會遇到linq to object問題,這裡將介紹xx問題的解決方法。普通儲存過程,首先在查詢分析器執行下面的 來建立乙個儲存過程 create proc sp singleresultset asset nocount on select from cust...