vector< pair<pair<int, string> >, string> v;
「first」と「second」を使用してそれらにアクセスする方法についても説明します。 2つ以上のデータ型を保持できるベクトルを作成する唯一の方法は、これを行うことも可能ですか、または「共用体」または「構造体」ですか?std :: pairを使用して3つのデータ型を保持できるベクトル
vector< pair<pair<int, string> >, string> v;
「first」と「second」を使用してそれらにアクセスする方法についても説明します。 2つ以上のデータ型を保持できるベクトルを作成する唯一の方法は、これを行うことも可能ですか、または「共用体」または「構造体」ですか?std :: pairを使用して3つのデータ型を保持できるベクトル
std::vector< std::pair<std::pair<int, std::string>, std::string> > v;
は
v[0].first.first = 42;
v[1].first.second = "hello";
v[2].second = "world";
std::tuple
で、可能である良い代替です:
std::vector<std::tuple<int, std::string, std::string>> v = /*..*/;
std::get<0>(v[0]) = 42;
std::get<1>(v[0]) = "Hello";
std::get<2>(v[0]) = "World";
適切な構造は、セマンティック
にstruct Person
{
int age;
std::string firstName;
std::string lastName;
};
std::vector<Person> persons = /*...*/;
persons[0].age = 42;
persons[0].firstName = "John";
persons[0].lastName = "Doe";
std :: get <0>(v [0])= 42; std :: get <1>(v [0])= "こんにちは"; std :: get <2>(v [0])= "World"; 入力から取得した値を割り当てることができません int n; cin >> n; <0>(v [0])= n; エラーが発生しました。 – theavatar
を与えることができ、あなたは 'のstdを探しています: :pair'は3つの値を保持しますか?その場合、[std :: tuple](http://en.cppreference.com/w/cpp/utility/tuple) –
のペアがあり、それは問題ありませんが、おそらく['std: :tuple'](http://en.cppreference.com/w/cpp/utility/tuple)がここでより適切です。 –
タプルを使用すると並べ替えることはできますか? – theavatar