C ++中一组分组数据的数据结构

时间:2011-08-01 14:08:06

标签: c++ data-structures

我需要创建一组分组数据。每个内部组的大小不相同。我应该能够使用索引访问任何组的任何成员。 我可以在C ++中使用哪种数据结构?

2 个答案:

答案 0 :(得分:1)

如果您的所有数据都属于同一类型,则可以使用向量向量,例如

std::vector< std::vector<YourDataType> >

答案 1 :(得分:0)

您需要添加更多信息。这些组如何存储?如果每个组都是一个数组,则可以使用数组数组,即(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” - 这是存储您所要求的内容的好方法,但这取决于这些组本身的存储方式。