今日はmapです。巷ではdictionaryとか言ったり、連想配列とか言われてるあれです。巷ってどこだー。くしゃみが止まりません(;´・ω・)
過去のSTLの記事はこちら↓
定義
namespace std { template < class Key, class T, class Compare = less<Key>, class Allocator = allocator<pair<const Key, T> > > class map; }
使い方は難しいことはなく、皆さん大好き?insertでpair
代わりにmake_pair()というので突っ込むこともできます。
んで、突っ込んだ要素は key, value っていうのが普通の表記だと思うんですが、
C++は first, second なんです。
なお、俺の嫁はfind()で探せます。
というわけで、説明するよりものを見たほうが理解が早いと思うのでサンプルコードを書きます。
例によって、オイオイっていうサンプルです。漢字使ってるのでソートの様子がよくわからんっすね。
g++でコンパイルしていますが、to_string()って使えないんですねー。
たぶん、Visual Studio 2013あたりならイケる。
ちなみにスリーサイズはマジで調べました。
ソースコード
実行結果
倉持由香 生年月日 : 1984/06/23 B : 84 W : 58 H : 100 北川景子 生年月日 : 1986/08/22 B : 不明 W : 不明 H : 不明 吉木りさ 生年月日 : 1987/07/27 B : 80 W : 59 H : 88 石坂ちなみ 生年月日 : 1984/06/23 B : 83 W : 58 H : 84 >>> 俺の嫁(北川景子)のスリーサイズ <<< 生年月日 : 1986/08/22 B : 不明 W : 不明 H : 不明
ちなみにですが、通常はC++11からならば
速度的な理由からハッシュで実装されている
std::unordered_map
を使うのがよいです。