関数など†
for_each()†
std::vector<int> vec = { 1, 2, 5, 8 };
for_each (vec.begin(), vec.end(), [](int &n) { n*= 3; } ); // vec の全要素に対して値を3倍にする
std::string†
コンストラクタ†
example code | description | remark |
string a; | 空の文字列を生成 | |
string b = "example"; | 右辺に渡された文字列で生成 | |
string c( b, 1, 3 ); | 元になる文字列 b の1番目から3番目の部分文字列から文字列を生成 | |
string d( "example", 2 ); | 文字列先頭2文字からなる文字列を生成 | |
string e( 10, 't' ); | 10個の文字 't' からなる文字列を生成 | |
string f = { 'e, 'x', 'a' }; | 文字の初期化子リストから文字列を生成 | |
string g = b; | string 変数 b のコピーを構築 | |
string i( b.begin(), b.end() ); | string 変数 b の iterator によって指定された範囲から文字列を生成 | 逆順を指定すると、gcc 4.9.2 では basic_string::_S_create が "std::length_error" でコアダンプする |
- 2つの string 変数同士の比較には、以下の演算子が使用出来る
== != < > <= >=
- 大小比較については文字コード順に行われる。
文字列長の取得†
- 以下の2つの関数がある。これらに挙動の差異はない。
- size_type std::basic_string::length()
- size_type std::basic_string::size()
文字列を空にする†
- void std::basic_string::clear()
empty(): 空文字かどうかを判定する†
- bool std::base_string::empty()
文字列ポインタを取得する†
- std::basic_string::c_str()
- std::basic_string::data()
- C++11になる前までは、末尾のNULL文字を含めない仕様になっていた。
- c_str(), data() とも、文字列オブジェクトの内容が変化した時には無効になる
iterator による操作†
std::wstring†
- wchar_t 型文字列
- 文字コードの規定はないが、wchat_t が2バイトの環境では UTF-16 の文字列として使われてきた。
C++11 の文字列関連†