C++でstd::pairを初期化します
この投稿では、初期化する方法について説明します std::pair
C++で。
1.初期化コンストラクター
を作成するための簡単なソリューション std::pair
は初期化コンストラクターを使用しています。このコンストラクターは、ペアの1番目と2番目のメンバーにそれぞれ対応する2つの引数を取ります。
1 2 3 4 5 6 7 8 9 10 11 |
#include <iostream> #include <utility> int main() { std::pair <std::string, int> p("John", 25); std::cout << "The pair is (" << p.first << ", " << p.second << ")\n"; return 0; } |
出力:
The pair is (John, 25)
2.使用する std::make_pair
ペアオブジェクトを作成するためのもう1つの一般的な解決策は、 std::make_pair
関数。ペアの最初のメンバーと2番目のメンバーにそれぞれ対応する2つの引数を取ります。この方法の利点は、 std::pair
テンプレートタイプは、その引数から暗黙的に推測できます。
1 2 3 4 5 6 7 8 9 10 11 |
#include <iostream> #include <utility> int main() { std::pair <std::string, int> p = std::make_pair("John", 25); std::cout << "The pair is (" << p.first << ", " << p.second << ")\n"; return 0; } |
出力:
The pair is (John, 25)
3.集計初期化の使用
C++ 11以降では、braced-init-listからペアを初期化することもできます。
1 2 3 4 5 6 7 8 9 10 11 |
#include <iostream> #include <utility> int main() { std::pair <std::string, int> p = {"John", 25}; std::cout << "The pair is (" << p.first << ", " << p.second << ")\n"; return 0; } |
出力:
The pair is (John, 25)
次のコードは上記と同じですが、direct-list-initialization構文を使用しています。
1 2 3 4 5 6 7 8 9 10 11 |
#include <iostream> #include <utility> int main() { std::pair <std::string, int> p {"John", 25}; std::cout << "The pair is (" << p.first << ", " << p.second << ")\n"; return 0; } |
出力:
The pair is (John, 25)
4.コンストラクターをコピーします
最後に、コピーコンストラクターを使用して、ペアオブジェクトを別のペアオブジェクトの対応するメンバーで初期化できます。
1 2 3 4 5 6 7 8 9 10 11 |
#include <iostream> #include <utility> int main() { std::pair <std::string, int> p({"John", 25}); std::cout << "The pair is (" << p.first << ", " << p.second << ")\n"; return 0; } |
出力:
The pair is (John, 25)
これで、初期化についてです std::pair
C++で。