我有一个ID(整数)的列表。 他们是在一个非常有效的方式来分类,使我的应用程序可以轻松地处理它们,例如C++索引到索引映射
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:我正在寻找一些简单的东西,可以很容易地从一个文件读入,也可以很容易地被序列化为一个文件。这就是为什么我以前一直在使用这种蛮力方法。
你可以考虑使用一个std ::向量或std ::地图'的std ::地图'? – 2013-04-18 05:31:20
如果您当前的m_content数组超出了会导致您的直接错误的堆栈大小,我不会感到惊讶。无论这种方法似乎关闭。你想解决什么问题? – 2013-04-18 05:34:03
我想保留一个列表,告诉我某个ID位于矢量上的哪个位置。 – tmighty 2013-04-18 05:37:55