1
我在C++中使用迭代器,它非常好,但我想在我的class.how中有一个迭代器?如何在我的类中定义一个迭代器
一个简单的例子
//a simple container
class MyArray
{
public:
MyArray()
{
for(int i=0;i<10;i++)
data[i] = 0;
}
int GetValue(int index)
{
if(index>=10 || index<0)
return -1;
else
return data[index];
}
bool SetValue(int value, int index)
{
if(index>=10 || index<0)
return false;
data[index] = value;
}
int& operator[](int index)
{ return data[index]; }
void ShowData();
protected:
int data[10];
private:
};
// only test use
void MyArray::ShowData()
{
std::cout<<"Data : ";
for(int i =0;i<10;i++)
{
std::cout<<data[i]<<" ";
}
std::cout<<std::endl;
}
int main()
{
MyArray array;
MyArray::iterator it = array.begin(); //how to implementation?
getchar();
return 0;
}
[如何正确实现自定义迭代器和const \ _iterator?](http://stackoverflow.com/questions/3582608/how-to-correctly-implement-custom-iterators-and-const-iterators) – Abhijeet
如果你想要便宜的方式,一个指针会被视为一个随机访问迭代器。除偶尔的标准库函数只适用于迭代器对象外,还可以使用指针。 –