我有一個std :: deque,我想插入一個指定索引的元素(我知道std :: list會更好)。 deque :: insert()函數需要一個迭代器來指定要插入的位置。給定一個索引,如何獲得指向該位置的迭代器,以便我可以將該迭代器傳遞給insert()?std :: deque:如何獲得指向指定索引處元素的迭代器?
例如:
void insertThing (deque<Thing> & things, Thing thing, size_t index)
{
deque<Thing>::iterator it = /* what do I do here? */
things.insert (it, thing);
}
我敢肯定,這是一個非常基本的問題,我爲此道歉。我使用STL已經很長時間了,我沒有在std :: deque的成員列表中看到任何明顯做我想做的事情。謝謝。
實際上,雙端隊列爲在這個名單比更好。 – 2010-04-09 15:23:07
尼爾,你確定? http://www.sgi.com/tech/stl/Deque.html表示它支持「中間線性時間插入」,而http://www.sgi.com/tech/stl/List .html具有「中間插入時間」。 – 2010-04-09 15:30:43
@Matthew但你首先必須找到插入點。 – 2010-04-09 15:31:21