我需要创建一组分组数据。每个内部组的大小不相同。我应该能够使用索引访问任何组的任何成员。 我可以在C ++中使用哪种数据结构?
答案 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” - 这是存储您所要求的内容的好方法,但这取决于这些组本身的存储方式。