如何使用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