【发布时间】:2016-01-10 11:35:30
【问题描述】:
我在尝试打印返回的迭代器时遇到了一些困难。我正在尝试创建两个具有一些值的迭代器,然后返回遇到该值的迭代器。这是我的代码:
#include <iostream>
#include <vector>
using namespace std;
template <typename Iterator, typename T>
Iterator find_elem(Iterator &first, Iterator &last, const T &obj){
while(first != last && (*first) != obj){
++first;
}
return first;
}
int main() {
vector<int>::iterator one;
vector<int> a = {3,4,5,6,7};
vector<int>::iterator two;
vector<int> b = {5,6,7,8,9};
cout << find_elem(one, two, 9); // ERROR ON THIS LINE
return 0;
}
如果有人能帮助解决这个问题,我将不胜感激,因为这将更好地帮助我详细了解迭代器
【问题讨论】:
-
你在问如何取消引用迭代器?
-
你真的应该从更简单的东西开始。这段代码中有太多错误,我们无法真正理解它的确切意图。尝试编写一个程序,在 one 向量中查找并打印一个值。并尝试先使用
std::find。 -
如果在这种情况下找到元素或值,我试图查看它返回的迭代器
-
问题出在
int main()。我试图让迭代器指向a,迭代器指向b -
迭代器并不指向一个整体的集合。它指向单个元素或者是特殊的
end()。