vectorとsetとmapと

vector,set,mapをよく間違えるのでメモ.

 

vector

配列っぽいもの
追加:vector.push_back(src);
末尾削除(取り出しではない):vector.pop_back(); 削除:vector.erase(itr);

構造体型でソートするには演算子のオーバーロードが必要

//sort用に演算子をオーバーロード
bool operator<(const struct& right) const
{
    return hoge == right.hoge ? true : hoge < right.hoge;
}

 

set

追加したら即時,昇順にソートされる
multisetもある
追加:set.insert(src); 探索:イテレーター(ランダムアクセス不可)

 

map

keyとvalueを持つ(せいでsetと間違える)
追加:map[key]=value;(map[key]が存在しない場合)
探索:map.find(key);(valueから探すにはイテレーターしかない?)