我有一个 ID 列表(整数)。它们以非常有效的方式排序,以便我的应用程序可以轻松处理它们,例如
9382
297832
92
83723
173934
(这种类型在我的应用程序中非常重要)。
现在我面临着必须访问另一个向量中某个 ID 的某些值的问题。
例如,ID 9382 的某些值位于 someVectorB[30] 上。
我一直在使用
const int UNITS_MAX_SIZE = 400000;
class clsUnitsUnitIDToArrayIndex : public CBaseStructure
{
private:
int m_content[UNITS_MAX_SIZE];
long m_size;
protected:
void ProcessTxtLine(string line);
public:
clsUnitsUnitIDToArrayIndex();
int *Content();
long Size();
};
但是现在我将 UNITS_MAX_SIZE 提高到 400.000,我得到了页面堆栈错误,这告诉我我做错了什么。我认为整个方法并不是很好。
如果“位置”不同,如果我想在不同的向量中定位 ID,我应该使用什么?
ps:我正在寻找一些简单的东西,可以很容易地从文件中读取,也可以很容易地序列化到文件中。这就是为什么我之前一直在使用这种蛮力方法。