Динамическое изменение типа std::vector

166
18 апреля 2019, 17:20
struct Datas
{
    std::string DataName;
    std::vector< > Data;
};

Как динамически менять тип у вектора в структуре в зависимости от типа записываемого значения, в него могут записываться значения следующего типа (int, double, string)

Answer 1

Используйте std::variant (или, если ваш компилятор не поддерживает C++17, то boost::variant).

std::vector< std::variant< std::string , int, double > > Data;   // если хотите свой тип для каждого элемента
std::variant<  std::vector< std::string > ,
               std::vector< int > , 
               std::vector< double > > Data;   // если хотите массивы однотипных элементов.

Альтернативы: использовать union (стиль C), либо просто завести три переменных:

std::vector< std::string  > DataStr;   
std::vector< int          > DataInt;   
std::vector< double       > DataDbl;   
READ ALSO
PSQLException ошибка

PSQLException ошибка

При тестировании кода выдаёт exception

131
Выбор одной записи из RethinkDB на Java

Выбор одной записи из RethinkDB на Java

Как можно извлечь одну запись из таблицы RethinkDB на Java? Я попробовал сделать так, как написано в документации:

146
Понятие абстрактного типа данных

Понятие абстрактного типа данных

К сожалению, не смог найти на просторах глобальной сети подходящего для меня объяснения этого понятияКогда заходит речь об абстрактных типах...

177
Что такое LayoutInflater.inflate() в Android?

Что такое LayoutInflater.inflate() в Android?

Смотрел туториал по разработке приложения на Андроид и в теме ArrayAdapter, ListView такой код

146