[轉] C++重讀二:C++基本語言(下)

  http://dev.csdn.net/article/70/70672.shtm
0.      轉換掉表達式的常量性以及volatile對象的volatile性;如const_cast<char *>ptr;編譯器隱式執行的任何類型轉換都可以由static_cast顯式完成。reinterpret_cast通常對操作數的位模式執行一個比較低層次的重新解釋。dynamic_cast支持在運行時刻識別由指針或引用指向的類對象。const_cast
1.      是標準C++中新引入的關鍵字,用於template中。typename
2.       兩個主要的順序容器是list和vector,另外一個順序容器是deque;兩個主要的關聯容器是map和set。
3.      選擇順序容器類型的一些準則:(1)隨機訪問,vector比list好得多;(2)已知道元素的個數,則vector比list強;(3)如果不只是在容器兩端插入和刪除元素,則list比vector強很多;(4)除非需要在容器首部插入和刪除元素,則vector比deque好。對於小的數據類型,vector的插入大批量數據的性能比list好很多,而大型數據時則相反,解決方案是隻保留大型數據的指針。Reserve函數容許將容器的容量設置成一個顯式指定的值,resize函數重新設置容器的長度;每個容器支持一組關係操作符;用戶定義的類類型必須支持等於操作符,必須支持小於操作符,元素類型必須支持一個缺省值(對類類型,指缺省構造函數)。
4.       除了iterator類型,每個容器還定義了一個const_iterator類型,對遍歷const容器是必需的,const_iterator容許以只讀方式訪問容器的底層元素。Iterator算術運算只適用vector或deque,而不適用於list因爲list在內存中不是連續存儲的。
5.       類的find函數返回一個索引類型string::size_type或者返回string::npos;find_first_of提供了被搜索字符串中任意一個字符串相匹配的第一次出現,並返回它的索引位置,substr函數生成現有string對象的子串的一個拷貝,第一個參數指明開始的位置,第二個可選的參數指明子串的長度。Rfind,查找最後的指定子串的出現;find_first_not_of查找第一個不與要搜索字符串的任意字符相匹配的字符;find_last_of查找與搜索字符串任意元素相匹配的最後一個字符;find_last_not_of查找字符串中的與搜索字符串任意字符全不匹配的最後一個字符。string
6.      函數接受一個大寫字符,並返回與之等價的小寫字母,必須包含頭文件<ctype.h>,另外一些該文件中的函數,isalpha,isdigit,ispunct,isspace,toupper等。tolower
7.       對把字符串進行賦值;append則類似於+=操作符;swap交換兩個string的值;進行越界檢查的at類似於[]操作符;Compare函數提供了兩個字符串的字典序比較;replace函數提供了十種方式,可以用一個或者多個字符替換字符串中的一個或多個現有的字符。assign
8.       定義了一個類型value_type,表示相關的鍵值對,用於insert函數。map
9.       關聯容器支持以下兩個函數:find查找指定key,不存在則返回end();count返回指定key值的出現的次數。
10.   定義了一個類型difference_type,是兩個iterator相減的結果類型;inserter類用來執行插入操作。如:copy(in, eos, inserter(set1, set1.begin());因爲copy執行的是賦值操作,所以使用inserter使用插入操作取代賦值操作。set
11.  和multimap的特殊操作equal_range返回iterator對值,如:pair<iterator, iterator> pos; pos = mp.equal_range(tst);multiset
12.   類,頭文件<stack>,函數top和pop分別是訪問棧頂元素和刪除棧頂元素。棧類型是容器適配器,因爲它把棧抽象施加到底層容器上,缺省情況下棧使用deque實現,可以自定義缺省的底層容器,如使用list構建stack:stack<int, list<int> > intStack;stack
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章