C++ primer 筆記二

來源:互聯網
上載者:User

標籤:多次   tracking   調用   content   最大數   int   地方   符號整型   post   

第3章 標準庫類型

1.不論什麼儲存string的size操作結果的變數類型必須為string::size_type類型。

2.同理儲存vector的size值應使用類似vector<string>::size_type的類型變數

3.使用for(vector<int>::size_type ix=0; ix != ivec.size(); ++ix)的風格 a.使用!=的效率更高 b.在迴圈過程中可能ivec的元素個數會變化,所以每次比較ivec.size()是一種更合理的做法 以。 c.C++有非常多小函數都是內嵌函式,所以多次調用ivec.size()產生的效率代價是非常小的

4.多認識了一個const迭代器:vector<int>::const_iterator,與vector<int>::iterator極像。僅僅是不能對得到的指標指向的對象進行改動。

5.兩個迭代器相減(iter1-iter2)得到兩者的距離

6.操作符::用於在其左運算元的範圍內找到其右運算元的名字。

7.size_t在cstddef標頭檔裡定義的機器相關的無符號整型。該類型足以儲存最大數組的長度。


第4章 數組和指標

8.未初始化的指標可能不為0。所以要盡量在聲明的地方初始化。或在將其初始化為NULL即0,方便使用前推斷是否已經初始化。

9.int &ri=ival, &ri2 = ival2;   ri = r2; 結果是什嗎?將ival2的值賦給ival,引用未變化。

10.在處理C風格字串時(即char數組)永遠要記得字串結束符為null(即‘\0‘),否則類似strlen()的結果不是確定的並且必將是錯誤的結果。包括strncpy等,但strlen的結果不包括結束符

11.使用C++標準庫類型string則不會存在C風格字串的問題,同一時候string的效率比C風格的也高。

12.c_str()返回的數組並不一直保持有效性。當string變數的記憶體配置不變化時,c_str()是一直有效,可是假設在後面的操作中string變數的長度發生變化或其它一些情況發生,因記憶體的又一次分配。則已經儲存的string.c_str()指標就可能變化,必須又一次調用c_str()返回新的地址.

C++ primer 筆記二

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.