2017-09-26 50 views
2

如何使用USING命令在C++中聲明迭代器?如何使用與迭代器一起使用?

using myVectorIterator = std::vector<int>::iterator; 

這是我

for (myVectorIterator = vector.begin(); myVectorIterator != vector.end(); myVectorIterator++) 

我在 '=' 和 '!=' 有一個錯誤。

+0

你真的叫做'vector'嗎? – doctorlove

+0

@doctorlove - 奇怪,但合法。我想這就是爲什麼使用完全限定的'std :: vector'。 – StoryTeller

+0

我知道 - 我只是想知道這段代碼是不是真的代碼出錯了... – doctorlove

回答

5

myVectorIterator是一個類型別名,而不是一個對象。你需要聲明一個實際的迭代器:

for(myVectorIterator itr = ...; itr != ...; ++itr) { 
} 

或者去省事,用auto

for(auto itr = ...; itr != ...; ++itr) { 
} 

也許連最簡單的,只需要使用一個範圍:

for(int i : vec) { 

} 

選擇每次迭代都會爲您提供儘可能多的信息。

+0

謝謝,它現在可以工作! –

+2

我會添加在第一個for循環中使用'auto'的可能性。 – Banex