我有一個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