1. ホーム
  2. c++

[解決済み】std::make_pairとstd::pairのコンストラクタは何のためにあるのですか?

2022-04-09 08:38:11

質問

の目的は何ですか? std::make_pair ?

なぜ std::pair<int, char>(0, 'a') ?

この2つの方法に違いはあるのでしょうか?

どのように解決するのですか?

この違いは std::pair は両方の要素の型を指定する必要があるのに対し std::make_pair は、何も言わなくても、渡された要素の型を持ったペアを作ります。これは、私が様々なドキュメントから得た情報です。

のこの例を参照してください。 http://www.cplusplus.com/reference/std/utility/make_pair/

pair <int,int> one;
pair <int,int> two;

one = make_pair (10,20);
two = make_pair (10.5,'A'); // ok: implicit conversion from pair<double,char>

暗黙の変換ボーナスはともかくとして、もし make_pair を使わなければ

one = pair<int,int>(10,20)

を割り当てるたびに、時間が経つにつれてイライラしてきます...。