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<</code> – 小于比較
<code>std::operator<=</code> – 小于等于比較
<code>std::operator></code> – 大于比較
<code>std::operator>=</code> – 大于等于比較
<code>std::operator<<</code> – 字元串内容寫到輸出流中
<code>std::operator>></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<std::string></code> – 計算hash值
<code>std::hash<std::wstring></code> – 計算hash值
<code>std::hash<std::u16string></code> – 計算hash值
<code>std::hash<std::u32string></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結尾的字元串的記憶體位址。