2014-08-28 2 views
0

Я ищу для хранения информации из таблицы данных с несколькими строками и столбцами. В каждой колонке имеется различный тип (int, double, std::string и т. Д.), Которые будут известны только во время выполнения.2-D вектор boost :: variant в C++

Является ли 2-d vector из boost::variant лучшим способом, или есть ли лучшие механизмы хранения для этого?

+2

Примером того, что вы пытаетесь сохранить, было бы полезно. Если вы имели в виду сохранение одной строки, имеющей несколько столбцов с разными типами данных, выбор «boost :: tuple» может быть лучшим выбором. – mstrthealias

ответ

2

С вашего вопроса неясно, что вы на самом деле ищете. Ответ зависит от различных факторов:

  • Если у вас есть различные типы на столбец, являются типы одинаковы для всех строк?

  • Известны ли типы во время компиляции или только во время выполнения?

В простейшем случае типов которые известен во время компиляции и одинаковой для всех строк, почему бы не просто использовать пользовательский класс для представления столбца или std::tuple?

Если типы разные между разными столбцами, вы должны использовать всемогущий тип, например boost::any. Это также может быть самым простым решением, если только типы будут известны во время выполнения.

Смежные вопросы