2010-03-01から1ヶ月間の記事一覧

std::vector - erase 時に std::remove を活用する

std::vector で特定を消去したい時に便利な方法があったので記載。 とりあえず今までのコードを記述。 std::vector<int> hige; hige.push_back(2); hige.push_back(5); hige.push_back(2); hige.push_back(6); ... std::vector<int>::iterator it = hige.begin(); whil</int></int>…

std::map - erase の戻り値を活用する

またまた std::map の記事です; std::map で erase してみた。 std::map<int, char> hige; hige.insert(std::make_pair(1, 'a')); ... std::map<int, char>::iterator it = hige.find(1); if (it == hige.end()) { // キーが重複している } else { hige.erase(it); } 「erase 時に</int,></int,>…

戻り値の型が異なる関数をオーバーロードする

C++

「戻り値の型が異なる関数をオーバーロードしたい!」 ってことがよくある。 とりあえずパッと思いついたのはこれ。 ※Traits(=特性)というテクニックらしい 追記:2010-03-14 template<class T> T getValue(); template<> int getValue<int>() { return 1; } template<> cha</int></class>…