我目前正在嘗試使用向量/結構的deques。結構簡單的例子...不知道要使用什麼數據結構
struct job {
int id;
int time;
}
我希望能夠通過結構搜索找到的時間匹配工作,從結構中取出,並繼續檢查該結構的其他ID。示例代碼...
<vector> jobs;
<deque> started;
for (unsigned int i = 0; i < jobs.size(); i++)
{
if (jobs.at(i).time == time)
{
started.push_back(jobs.at(i));
jobs.erase(jobs.begin() + i);
i--;
}
}
time++;
這工作我怎麼想它,但它也似乎很哈克因爲我調整指數,每當我刪除,我認爲這只是因爲我不是知識淵博的應與數據結構。任何人都可以給我一些建議?
注 - 我不認爲這是重複的這篇文章已被標記爲,因爲我不想用我已有的東西有效地做一些事情。對我而言,考慮到每當我從中獲得所需的東西時,我都會減小Deque的大小,這似乎足夠有效。我希望得到的是一些關於如何確定什麼是最好的數據結構的建議,這些數據結構可能不是我處理它們時要處理的東西。
我也可能是錯的,我的用法很好,但似乎對我來說。
的std :: unordered_map –
好,謝謝喬恩!我會給一看 – cpd1
可能的重複[最有效的方式刪除/刪除多個std ::向量元素,同時保留原始順序?](http://stackoverflow.com/questions/4115279/most-efficient-way-刪除 - 刪除多個stdvector-elements-while-retai) – Drop