如何使用USING命令在C++中聲明迭代器?如何使用與迭代器一起使用?
using myVectorIterator = std::vector<int>::iterator;
這是我
for (myVectorIterator = vector.begin(); myVectorIterator != vector.end(); myVectorIterator++)
我在 '=' 和 '!=' 有一個錯誤。
如何使用USING命令在C++中聲明迭代器?如何使用與迭代器一起使用?
using myVectorIterator = std::vector<int>::iterator;
這是我
for (myVectorIterator = vector.begin(); myVectorIterator != vector.end(); myVectorIterator++)
我在 '=' 和 '!=' 有一個錯誤。
myVectorIterator
是一個類型別名,而不是一個對象。你需要聲明一個實際的迭代器:
for(myVectorIterator itr = ...; itr != ...; ++itr) {
}
或者去省事,用auto
:
for(auto itr = ...; itr != ...; ++itr) {
}
也許連最簡單的,只需要使用一個範圍:
for(int i : vec) {
}
選擇每次迭代都會爲您提供儘可能多的信息。
謝謝,它現在可以工作! –
我會添加在第一個for循環中使用'auto'的可能性。 – Banex
你真的叫做'vector'嗎? – doctorlove
@doctorlove - 奇怪,但合法。我想這就是爲什麼使用完全限定的'std :: vector'。 – StoryTeller
我知道 - 我只是想知道這段代碼是不是真的代碼出錯了... – doctorlove