2017-09-26 47 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