天天看點

string<C++标準庫>的函數

string<C++标準庫>的函數

構造表示

<code>string::string</code>(構造)

<code>string::~string</code>(析構)

<code>string::operator=</code> - 指派

<code>string::assign</code> – 指派

<code>string::get_allocator</code> – 獲得記憶體配置設定器

字元通路

<code>string::at</code> – 通路特定字元,帶邊界檢查

<code>string::operator[]</code> – 通路特定字元

<code>string::front</code> – 通路第一個字元

<code>string::back</code> – 通路最後一個字元

<code>string::data</code> – 通路基礎數組

<code>string::c_str</code> – 傳回對應于字元串内容的C風格零結尾的隻讀字元串。

<code>string::substr</code> – 擷取子串。參數為空時取全部源串

<code>string::copy</code> – 拷貝出一段字元到C風格字元串。有溢出危險。

疊代器

<code>string::begin</code> – 獲得指向開始位置的疊代器

<code>string::end</code> – 獲得指向末尾的疊代器

<code>string::rbegin</code> – 獲得指向末尾的逆向疊代器

<code>string::rend</code> – 獲得指向開始位置的逆向疊代器

<code>string::cbegin</code> – 獲得指向開始位置的隻讀疊代器

<code>string::cend</code> – 獲得指向末尾的隻讀疊代器

<code>string::crbegin</code> – 獲得指向末尾的逆向隻讀疊代器

<code>string::crend</code> – 獲得指向開始位置的逆向隻讀疊代器

容量

<code>string::empty</code> – 檢查是否為空

<code>string::size</code> – 傳回資料的字元長度

<code>string::length</code> – 傳回資料的字元長度,與size()完全相同

<code>string::max_size</code> – 傳回可存儲的最大的位元組容量,在32位Windows上可能為43億位元組.

<code>string::reserve</code> – 改變string的字元存儲容量,實際獲得的存儲容量不小于reserve的參數值。

<code>string::capacity</code> – 傳回目前的字元存儲容量

<code>string::shrink_to_fit</code> (C++11新增) – 降低記憶體容量到剛好

修改器

<code>string::clear</code> – 清空内容

<code>string::insert</code> – 插入字元或字元串。目标string中的插入位置可用整數值或疊代器表示。如果參數僅為1個疊代器,則在其所指位置插入0值。

<code>string::erase</code> – 删除1個或1段字元

<code>string::push_back</code> – 追加1個字元

<code>string::append</code> – 追加字元或字元串

<code>string::operator+=</code> – 追加,隻有一個參數。不具有append()的可以追加源字元串的子串的功能。

<code>string::pop_back</code> – 删除最後一個字元

<code>string::resize</code> – 改變(增加或減少)字元串長度。如果增加了字元串長度,新字元預設為0值。

<code>string::swap</code> – 與另一個string交換内容

<code>string::replace</code> – 替換子串。如果替換源資料與被替換資料的長度不等,則結果字元串的長度發生了改變。

搜尋

<code>string::find</code> – 前向搜尋特定子串的第一次出現

<code>string::rfind</code> – 從尾部開始,後向搜尋特定子串的第一次出現

<code>string::find_first_of</code> – 搜尋指定字元集合中任意字元在被搜尋string中的第一次出現

<code>string::find_last_of</code> – 搜尋指定字元集合中任意字元在被搜尋string中的最後一次出現

<code>string::find_first_not_of</code> – 被搜尋string中的不屬于指定字元集合的首個字元

<code>string::find_last_not_of</code> – 被搜尋string中的不屬于指定字元集合的末個字元

<code>string::compare</code> – 與參數字元串比較

非成員函數

<code>std::operator+</code> – 字元串連接配接

<code>std::operator!=</code> – 不等比較

<code>std::operator==</code> – 相等比較

<code>std::operator&lt;</code> – 小于比較

<code>std::operator&lt;=</code> – 小于等于比較

<code>std::operator&gt;</code> – 大于比較

<code>std::operator&gt;=</code> – 大于等于比較

<code>std::operator&lt;&lt;</code> – 字元串内容寫到輸出流中

<code>std::operator&gt;&gt;</code> – 從輸入流中讀取一個字元串

<code>std::getline</code> – 從istream中讀入一行或一段字元到string中

<code>std::swap</code> – 交換兩個string的内容。是 std::swap算法針對std::basic_string的特化版本

<code>std::stoi</code> – 字元串轉為×××

<code>std::stol</code> – 字元串轉為長×××

<code>std::stoll</code> – 字元串轉為長長×××

<code>std::stoul</code> – 字元串轉為無符号長×××

<code>std::stoull</code> – 字元串轉為無符号長長×××

<code>std::stof</code> – 字元串轉為單精度浮點形

<code>std::stod</code> – 字元串轉為雙精度浮點形

<code>std::stold</code> – 字元串轉為長雙精度浮點形

<code>std::to_string</code> – 整型、無符号整型、浮點型轉化為string

<code>std::to_wstring</code> – 整型、無符号整型、浮點型轉化為wstring

<code>std::hash&lt;std::string&gt;</code> – 計算hash值

<code>std::hash&lt;std::wstring&gt;</code> – 計算hash值

<code>std::hash&lt;std::u16string&gt;</code> – 計算hash值

<code>std::hash&lt;std::u32string&gt;</code> – 計算hash值

常量值

<code>string::npos</code> – 表示“未找到”,值為<code>statci const unsigned -1</code>

結果:

由于字元串的拷貝操作與其位元組長度成比例,是O(n)量級。且建立字元串的臨時棧對象的成本開銷。是以<code>string</code>一般作為常量引用(reference-to-const)以避免不必要的拷貝:

<code>c_str()</code>成員函數傳回string類的C語言風格字元串(即ASCII-零串)的指針,用于C語言字元串的互操作。如果不需要零結尾的字元串,那麼成員函數<code>data()</code>傳回不一定是0結尾的字元串的記憶體位址。