【Primer C++】第三章:文字列、容器
文書ディレクトリ string `getline`関数 `string::size_type` 字面値とstringオブジェクトを加算 処理`string`オブジェクトの文字 容器 標準ライブラリタイプ`vector` 反復器 標準ライブラリ関数`begin()`,`end()` Cスタイルの文字列 string
文字値とstringオブジェクトの加算
文字のプロパティを変更し、
ようき
標準ライブラリタイプ
vectorのリスト初期値と要素数の違いは、
vectorオブジェクトを作成する場合、空のvectorを作成し、
反復器
標準ライブラリ関数
配列の先頭ポインタと末尾ポインタを取得し、配列をパラメータとして入力します.
Cスタイルの文字列
Cスタイルの文字列は'0'で終わる必要があり、これに関連するライブラリ関数はヘッダファイル
空の文字で終わる文字配列を使用してstringオブジェクトを初期化するか、stringオブジェクトに値を割り当てることができます.stringオブジェクトの加算では、空の文字で終わる文字配列を1つの演算オブジェクトとして使用できます(ただし、両方とも使用できません).
多くのc++プログラムは、標準ライブラリが登場する前から書かれていたので、stringやvectorタイプは使用されていないに違いありません.そのため、c++は古いコードと接続するために、stringとcスタイルの文字列を混用する機能を提供しています.
stringをパラメータとする方法ではcスタイルの文字列を伝達することができ,逆にstringをcスタイルの文字列をパラメータとする方法に伝達することはできない.
補足として、c++はstringをcスタイル文字列に変換する方法を提供する:
getline
関数getline
関数のパラメータは、入力ストリームとstringオブジェクトであり、関数は入力ストリームから改行に遭遇するまで内容を読み込む(改行も読み込まれる)が、stringオブジェクトには改行は含まれない.string::size_type
string
のsize
関数では、string::size_type
タイプの値が返されます.文字値とstringオブジェクトの加算
string
オブジェクトと文字列のフォント値を1つの文に混ぜて使用する場合は、各加算演算子(+)の両側の演算オブジェクトの少なくとも1つがstring
であることを確認する必要があります.string s4 = s1 + ", ";
string s5 = "hello" + ", "; // , string
string s6 = s1 + ", " + "world";
string s7 = "hello" + ", " + s2;
string
オブジェクトの文字の処理文字のプロパティを変更し、
cctype
ヘッダファイルで定義します.isalnum(c),isalpha(c),isdigit(c)...
ようき
標準ライブラリタイプ
vector
以前のバージョンのC++標準では、vectorの要素がvector(または他のテンプレートタイプ)である場合は、次のように書く必要があります.vector > vector> //
vectorのリスト初期値と要素数の違いは、
()
または{}
によって判断されます.vector v1(10) // 10
vector v1{10} // , 0
{}
初期化の形態では、提供された値がリスト初期化に使用できない場合、vector
オブジェクトをこのような値で構築することを考慮する.vector strVec{10}; // 10 vector
vector strVec{10, "hi"} // 10 “hi” vector
vector strVec(10, "hi") //
vector strVec("hi") // , “hi” vector, “()”
// 1 , ,
vectorオブジェクトを作成する場合、空のvectorを作成し、
push_back
メソッドで要素を追加することが多い.反復器
.begin()
, .end()
標準ライブラリ関数
begin()
end()
この2つの関数はヘッダファイルiterator
に含まれ、配列の先頭ポインタと末尾ポインタを取得し、配列をパラメータとして入力します.
int ia[] = {1,2,3,4,5,6}
int *beg = begin(ia);
int *last = end(ia);
Cスタイルの文字列
Cスタイルの文字列は'0'で終わる必要があり、これに関連するライブラリ関数はヘッダファイル
string.h
に含まれるが、入力された文字列は'0'で終わる必要があり、正常に動作する必要がある.空の文字で終わる文字配列を使用してstringオブジェクトを初期化するか、stringオブジェクトに値を割り当てることができます.stringオブジェクトの加算では、空の文字で終わる文字配列を1つの演算オブジェクトとして使用できます(ただし、両方とも使用できません).
多くのc++プログラムは、標準ライブラリが登場する前から書かれていたので、stringやvectorタイプは使用されていないに違いありません.そのため、c++は古いコードと接続するために、stringとcスタイルの文字列を混用する機能を提供しています.
stringをパラメータとする方法ではcスタイルの文字列を伝達することができ,逆にstringをcスタイルの文字列をパラメータとする方法に伝達することはできない.
補足として、c++はstringをcスタイル文字列に変換する方法を提供する:
c_str()
、返されるのは配列を指すポインタであるため、以下のコードを考慮する.string s = "hello";
const char *pch = s.c_str();
s = "world";
pch “world”
c_str() ,