唯一のC ++は本当に浅すぎることを発見する前に、ブログのこのシリーズは、仕事、学校の仕事でC ++のための学部課程と反射の私のレビューです。
他の人のコードを読んで、学習の問題で、おなじみの再する方法がわかりません
まずコードを掲載しました
void split(const string& s, vector<double>& sv, const char flag = ' ') {
sv.clear();
istringstream iss(s);
string temp;
while (getline(iss, temp, flag)) {
sv.push_back(stoi(temp));
}
return;
}
このコード列は、intの配列の形で提示番号削除されます「34613456から34」のように、その特定のシンボルに分割することができます。
使用済みそこ
1、ベクトル(ベクトル)動的シーケンシャルコンテナ配列サイズ(シーケンスコンテナ)カプセル化です。<ベクトル>組み込ま含める必要が
http://www.runoob.com/w3cnote/cpp-vector-container-analysis.html
2は、STOI()は、数値実施例INTの列に変換され、規格外のintまたは数の範囲を超えては、STDに含まれる例外、他の機能ATOIを(スロー)はなく、同じ効果のIntを超え範囲は、例外をスローするが、上部戻り、下限は、それが標準ライブラリです。次のように関数のプロトタイプは次のとおりです。
int stoi (const string& str, size_t* idx = 0, int base = 10);
どこで:
STR:Stringオブジェクトは、整数を表します。
IDX:size_t型のオブジェクトを指すポインタが、関数によって次の値STR文字位置にその値を設定します。このパラメータは、それがこの場合に使用されていない、NULLポインタかもしれません。
ベース:有効な文字とその解釈(ベース)の数値の基礎を決定します。
0の場合、塩基が使用される(詳細については、strtolは参照)シーケンスフォーマットによって決定されます。それを注意してください、デフォルトでは、このパラメータは10、0でありません。
さらに含む、このような一般的な機能:
(1)STOLは long intに文字列を変換します
(2) stoul 符号なし整数に文字列を変換 ストール、stoull
STOF(3) フロートに文字列を変換します
(4) STODは ダブルに文字列を変換 STOLD
3、のgetline関数プロトタイプ:
getline(char *sink, streamsize size, char delimiter='\n')
getline( istream &is, string str, char delimiter );
この方法は一つだけの行を読み取ることができないので、文字フラグが読み出されるように、またスペースを「使用」された上記のコード例のように、指定されました
図4は、istringstreamは<sstream提供>で(<sstream提供>前記<入出力ストリーム>そう無含有の両方)に含ま
1つのistringstream用のIStreamは、文字列からデータを読み出すに由来
する文字列から派生2 ostringstream書き込みのostream
文字列から文字列に読み取りまたは書き込みに由来する3にstringstreamの入出力ストリーム
ここでは、ストリームとして使用する文字列である、と引数を受け入れることができ、出力演算子は、コードように、char型の* constのいずれかの組み込みデータ型が含まれます。
string str="this is a test";
istringstream is(str);
string s;
while(is>>s)
{
cout<<s<<endl;
}
出力は次のようになります。
この
あります
A
テスト
しかし、また、データ型の変換は、このメソッドを使用して行うことができます。
int a, b, c;
string s = "2 34 564";
istringstream ss(s);
ss >> a >> b >> c;
cout << a << " " << b << " " << c << " ";
出力は234 564です