久々にtopcoderをやってみたんですが、1問しか解けませんでした。終わった時は練習しようと思うんですが、中々実行できないです。。
久々すぎて文字列のsplitすら出来なくて、そんな馬鹿なと思って調べてみると、STLのstringってsplitメソッドが無いんですね。仕方ないのでその辺のコードをコピペしたんですが、終わってから皆さんのコードを見るとstringstreamでsplitするのが、常套手段っぽくて、初めて目にしたのでメモ書きです。
#include <vector> #include <string> #include <iostream> #include <sstream> using namespace std; int main(int argc, char* argv) { stringstream ss("hello std world"); // これでスペースで文字列splitできる string elem; while (ss >> elem) { cout < < elem << endl; } return 0; }
確かにこれなら結構シンプルで良いですね。デリミタがスペースしか受け付けないので、事前にreplace処理をしておかないと駄目なのが面倒ですけど。あれ、TopCoderってboost使えないんでしたっけ。
関連する記事
タグ: c++, stringstream

