需要檢查位置是奇數還是偶數。獲取迭代器的位置? C++
for(auto a : aliens) {
if(a - vec.begin() % 2 == 0){
/*do something */
}
猜測這將是類似的東西,從我所研究,但似乎無法得到它運行,這是相當惱人的。 謝謝..
需要檢查位置是奇數還是偶數。獲取迭代器的位置? C++
for(auto a : aliens) {
if(a - vec.begin() % 2 == 0){
/*do something */
}
猜測這將是類似的東西,從我所研究,但似乎無法得到它運行,這是相當惱人的。 謝謝..
其實你不能在這種類型的循環。這是foreach
和foreach
不會讓您訪問迭代器,而是訪問迭代對象本身。當你需要訪問迭代器時,你必須使用for
循環。
你怎麼可能知道'外星人'不是充滿迭代器的容器? – juanchopanza
@juanchopanza好吧,你是對的,我認爲'vec.begin()'是'aliens.begin()'。 –
應該已經更清楚了,它的對象全是 – user3463583
更簡單的方法:
bool isEven = true;
for(auto a : aliens) {
isEven = !isEven;
if(isEven){
/*do something */
}
@r Shau謝謝,這種方法工作。 – user3463583
什麼是'aliens'?一個std :: vector? – streppel
當你需要這種內部條件時,不要使用遠程循環。 – Chnossos
if((a - vec.begin())%2 == 0){ – ravenspoint