mapの使い方~基本編~
早く使えるようになりたいC++.STLとかヨクワカンネのレベルなので,ちょこちょこ勉強.
#include <iostream> #include <string> #include <map> using namespace std; int main(){ map<string, int> mymap; mymap.insert( map<string, int>::value_type("hoge", 1) ); mymap.insert( map<string, int>::value_type("foo", 2) ); mymap.insert( map<string, int>::value_type("bar", 3) ); /* これでも上書きできる */ mymap["hoge"] = 4; cout << mymap["hoge"] << "\n"; cout << mymap["foo"] << "\n"; cout << mymap["bar"] << "\n"; return 0; }
イテレーションはこんな感じ
map<string, int>::iterator it = mymap.begin(); while(it != freq_table.end() ){ cout << (*it).first << ":" << (*it).second << endl; ++it; }
endlって"\n"と同じ意味っぽい.知らなかった.first, secondというのがあまり気に食わないけれど,データ構造を考えるとそうなんだろうね.
いちいちテンプレートを引数が面倒くさければ,自分で型をtypedefすればいい.
typedef map<string, int> MyMap_t; MyMap_t mymap; MyMap_t::value_type("hoge", 1); MyMap_t::iterator it = mymap.begin(); /* 以下略 */
よし,これでNaiveBayesが書けるようになった.はず.逃避したくなったらC++でも書いてみよう.