Структура данных для группы сгруппированных данных в C ++ - PullRequest
0 голосов
/ 01 августа 2011

Мне нужно создать группу сгруппированных данных.размер каждой внутренней группы не одинаков.Я должен иметь возможность получить доступ к любому члену любой группы, используя индексы.Какую структуру данных я могу использовать в C ++?

Ответы [ 2 ]

1 голос
/ 01 августа 2011

Если все ваши данные относятся к одному и тому же типу, вы можете использовать вектор векторов, например,

std::vector< std::vector<YourDataType> >
0 голосов
/ 01 августа 2011

Вам нужно добавить больше информации.Как хранятся группы?Если каждая группа является массивом, вы можете использовать массив массивов, то есть (type)**AoA, и каждый индекс AoA будет указывать на массив, который содержит базовую группу.Например:

#include <stdlib.h>

int main()
{
   int group1[3] = {1,2,3};
   int group2[3] = {4,5,6};

   int** groupArray = (int**)malloc(sizeof(int*) *2);
   groupArray[1] = group1;
   groupArray[2] = group2;

   return 0;
}

Поскольку это C ++, вектор векторов был бы лучшим выбором, но концепция та же.Кроме того, прочтите «B-Trees» - это хороший способ хранить то, что вы просите, но это зависит от того, как сами группы хранятся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...