string 類和標準模板庫

來源:互聯網
上載者:User

   sting類:

string類包含大量的方法,其中包括了若干建構函式,用於將字串賦給變數、合并字串、比較字串和訪問各個元素的重載操作符以及用於在字串中尋找字元和子字串的工具等。

string類輸入:

對於C-風格字串,有3種方式:

char info[100];

cin >> info;             //read a word 

cin.getline ( info,100);    //read a line ,discard \n

cin.get(info,100);        //read a line,leave \n in queue

string還提供了:方法capacity()返回當前分配給字串的記憶體塊的大小,而

reserve() 方法讓您能夠請求記憶體塊的最小長度。

的auto_ptr 類:

這是一個模板類,用於管理動態記憶體分配的用法。

說明了auto_ptr 和常規指標在行為方面的差別

因此,要轉換remodel()函數,應按下面的3個步驟進行:

1、包含標頭檔memory。

2、將指向string的指標替換為指向string的auto_ptr對象。

3、刪除delete語句。

    auto_ptr是一種智能指標(smart pointer)——類似於指標,但特性比指標更多。

標準模板庫STL提供了一組表示容器、迭代器、函數對象和演算法的模板。所有的STL容器都提供了一些基本方法,其中包括size()——返回容器中元素數目、swap()——交換兩個容器的內容、begin()——返回一個指向容器中第一個元素的迭代器、end()——返回一個表示超過容器尾的迭代器。

代表性的STL函數:fot_each()、random_shuffle()和sort()。的for_each()函數可用於許多容器類,它接受3個參數。前兩個是定義容器中區間的迭代器,最後一個是指向函數的指標。For_each()函數將被指向的函數應用於容器區間中的各個元素。被指向的函數不能修改容器元素的值。可以用for_each()函數來代替for迴圈。

迭代器的特徵:

1、應能夠對迭代器執行解除引用的操作,以便能夠訪問它引用的值。如果p是一個迭代器,則應對*p進行定義。

2、應能夠將一個迭代器賦給另一個。如果p和q都是迭代器,則應對錶達式p = q進行定義。

3、應能夠將一個迭代器與另一個進行比較,看它們是否相等。即如果p和q都是迭代器,則應對p= =q和p!=q進行定義。

4、應能夠使用迭代器遍曆容器中的所有元素,這可以通過為迭代器p定義++p 和p++來實現。

    

STL的方法:首先,每個容器類(vector、list、deque等)定義了相應的迭代器類型。對於其中的某個類,迭代器可能是指標;而對於另一個類,則可能是對象。其次,每個容器類都有一個超尾標記,當迭代器遞增到超越容器的最後一個值後,這個值將被賦給迭代器。

STL定義了5種迭代器,分別是輸入迭代器、輸出迭代器、正向迭代器、雙向迭代器和隨機訪問迭代器。

STL容器種類:deque、list、queue、priority、priority_queue、stack、vector、map、multiset和bitset。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.