Вектор, который может содержать три типа данных, используя std::pair

vector< pair<pair<int, string> >, string> v;

Также упомяните, как получить к ним доступ, используя "первый" и "второй". Возможно ли это сделать или "объединение" или "структура" - единственный способ создать вектор, который может содержать более двух типов данных?

1 ответ

Решение

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";
Другие вопросы по тегам