В нашем проекте C ++ мне нужна некоторая комбинированная структура данных, я думаю, она должна быть очень похожа на таблицу SQL.У меня есть набор массивов (std :: vectors) одинакового размера с разными типами данных.Например:
time(int), X(double), Y(double), valid(boolean), number_of_measurements(int)
Давайте представим, что они как таблица, мне нужен доступ к ним по строкам.Например, мне нужна функциональность для вставки строки в произвольную позицию таблицы, которая вызовет смещение всех строк на один элемент вниз, уничтожение строки.Мне может понадобиться отсортировать таблицу по времени, объединить ее с другими таблицами того же типа.
Есть ли что-нибудь подобное в мире C ++?
По сути, мне нужно универсальное решение, которое поддерживает любое количество столбцов и строк.И, конечно, производительность имеет смысл, поэтому я предпочитаю делать это скорее в памяти, чем в базе данных.
ОБНОВЛЕНИЕ
Я вижу, что многие люди предлагают определить простую строкуструктурировать и хранить его в коллекции.Нет, это не улетит так далеко, как мне нужно часто оперировать столбцами.Например, мне может понадобиться умножить весь столбец или вычислить из него среднее значение.Я могу даже интерполировать его или применить много разных алгоритмов к определенному столбцу.
И я хочу избежать ситуации, когда я извлекаю столбец из вектора, применяю к нему некоторые алгоритмы и затем возвращаю его обратно в структуру,Это выглядит ужасно, не правда ли?
Мне нужно более или менее похоже на это:
// Initializing: (three columns: time, X, Y)
table t("time", std::vector<int>(), "X", std::vector<double>(), "Y", std::vector<double>());
// inserting a row
t.insert_row( 1, 20.0f, 20.0f );
// accessing values:
t["time"][10] = 20;
// getting a column:
std::vector<int> time = t["time"];
// sorting
t.sort_by( "time" );
Есть мысли?