進捗置き場

競プロの問題の解説など.大雑把な方針と自分のコードだけ載せてます

emplace_back

vectorのemplace_backが良さそうということに案外気付いたのでメモ

vector<pair<int,int>> a;

a.push_back(make_pair(1,2)); //これはok
a.push_back(1,2); //これは駄目

a.emplace_back(make_pair(1,2)); //これはok
a.emplace_back(1,2); //これもok!!

なんでこれが許されるかというと,emplace_backでは要素型のクラスが取りうるコンストラクタ引数の値を元に、要素をコンテナ内で直接構築して追加するという操作が行われているため