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

172
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

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

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

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

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

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

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

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

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

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

152