Я видел много дискуссий о прямоугольных 2-D массивах в C ++, но не столько о том, с чем я работаю. Мне нужно хранить одинаковую информацию о фиксированном количестве вещей, поэтому я создал структуру и думаю, что хочу иметь вектор их векторов, поэтому я сделал следующие определения:
typedef struct sInfo {
int Length;
int RemainingReadLength;
int RemainingWriteLength;
bool FillFlag;
int Offset;
};
class InfoClass {
protected:
<vector<vector<sInfo> > vvInfo;
uint32 Index1;
uint32 Index2;
sInfo Info;
public:
InfoClass () : vvInfo(NUM_INFO) {}
void AddInfo() {
vvInfo[Index1].push_back(Info);
}
uint getLength () {
return (vvInfo[Index1][Index2].Length;
}
}
Я имею в виду фиксированное количество строк, каждая из которых может расширяться или сжиматься независимо. Насколько я могу судить, ctor создает пустые векторы NUM_ID, и, по крайней мере, сначала getLength работает. Однако в AddInfo, похоже, есть проблемы с выделением.
Итак, во-первых, это лучший способ решения проблемы? Если да, то правильно ли я справляюсь с этими динамически распределенными, рваными векторами?
Спасибо