現在我正在編寫解決車輛路徑問題的一些代碼。爲此,一個重要的決定是選擇如何對解決方案進行編碼。一個解決方案包含幾條路線,每個車輛一個。每條路線都有客戶訪問順序,路線負載和路線長度。 要對解決方案信息進行修改,我還需要快速找到一些信息。例如,
哪條路線是客戶所在?
路線有哪些客戶?
路線中有多少個節點?
節點前面或後面有什麼節點?矢量與動態數組相比,速度有很大差異嗎?
現在,我想使用以下結構來保持解決方案。
struct Sol
{
vector<short> nextNode; // show what is the next node of each node;
vector<short> preNode; //show what is the preceding node
vector<short> startNode;
vector<short> rutNum;
vector<short> rutLoad;
vector<float> rutLength;
vector<short> rutSize;
};
每個向量的通用大小是實例相關的,在200-2000之間。
我聽說有可能使用動態數組來完成這項工作。但在我看來,動態數組更復雜。必須找到內存並釋放內存。這裏我的問題是雙重的。
如何使用動態數組來實現相同的目的?如何定義結構或類,以便內存位置和發佈可以輕鬆處理?
使用動態數組會比使用矢量更快嗎?假設解決方案結構需要被訪問百萬次。
爲什麼你有一個成員數組的結構,而不是一個具有成員的結構數組?後者不那麼容易混淆,不易出錯並且速度更快。 –
每個陣列中的信息是不同的,而不是相同的項目 – Jackie