[英]How to define a iterator in my class
我在C ++中使用迭代器,效果很好,但是我想在我的類中使用我的迭代器,怎么辦?
一個簡單的例子
//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;
}
C ++ 11標准在該標准的第24節中定義了對迭代器的要求。 因此,這里的簡短答案是讓您以滿足迭代器要求的方式定義和實現iterator
和const_iterator
類。
迭代器的要求在標准中占據了五個簡短的頁面。 顯然,這不是可以在stackoverflow.com
答案中的幾個簡短段落中總結的內容。
我建議您訪問圖書館或書店,查找有關C ++的詳盡書籍,進行瀏覽,看看它是否對迭代器及其要求提供了很好的實質性審查。 然后嘗試自己實現它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.