有沒有辦法在C++ 11基於範圍的for循環中訪問迭代器(假設沒有循環索引 ..?)?基於'索引'跳過基於範圍的?
通常我們需要對容器的第一個元素進行一些特殊的操作,並遍歷剩餘的元素。
我正在尋找類似的c++11_get_index_of
聲明在這個僞代碼:
for (auto& elem: container)
{
if (c++11_get_index_of(elem) == 0)
continue;
// do something with remaining elements
}
我真的想避免回到old-style manual iterator handling代碼在那種情況下..
使用能夠提供所需功能的構造。也就是說,使用普通的'for'循環(如果這可以很容易地解決你的問題)。不要強迫自己做複雜的事情,不需要太複雜。 – Nawaz
使用具有首選範圍的STL算法。如果算法中沒有任何一個適合,只能回退到for循環。 –
@Nawaz正確,但如何使用if(elem == container.front())繼續;'作爲解決方法?不是太複雜,是嗎?我們仍然可以使用簡潔的語法。仍然比在pre-C++ 11中手動迭代器處理的3行更好恕我直言...... – Jay