// std:: iterator sample
#include <iostream> // std::cout
#include <iterator> // std::iterator, std::input_iterator_tag
class MyIterator:public std::iterator<std::input_iterator_tag, int>
{
int *p;
public:
MyIterator(int *x):p(x){}
MyIterator(const MyIterator& mit):p(mit.p){}
MyIterator& operator++(){++p; return *this;}
MyIterator operator++(int){MyIterator tmp(*this);operator++(); return tmp;}
bool operator==(const MyIterator& rhs){return p == rhs.p;}
bool operator!=(const MyIterator& rhs){return p!rhs.p;}
int& operator*(){return *p;}
};
int main(){
int numbers[] = {10, 20, 30, 40, 50};
MyIterator from(numbers);
MyIterator until(numbers+5);
for (MyIterator it=from; it!=until; it++)
std::cout << *it << '';
std::cout << '\n';
return 0;
};
當我試圖更好地理解「迭代器」是什麼。我將這些代碼複製到我的編譯器(codeBlock)。 有一個錯誤:「預計」;「在'!'之前令牌」。 這是怎麼回事?錯誤:預期';'在'!'之前代幣
請提供整個堆棧跟蹤 – Pol0nium
哪一行產生編譯器錯誤? –
回答此問題的人都戴着太陽鏡!大聲笑 – streppel