読者です 読者をやめる 読者になる 読者になる

Gobble up pudding

プログラミングの記事がメインのブログです。

MENU

STL入門 第5回 ~map編~

スポンサードリンク

f:id:fa11enprince:20150730082113j:plain
今日は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をぶち込めばOKです。
代わりに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を使うのがよいです。