读书人

请教迭代器的初级有关问题

发布时间: 2012-02-20 21:18:24 作者: rapoo

请问迭代器的初级问题
我常看到有这样的代码:vector<string>::iterator it;
这种写法在C++中好像没有看到过,请问iterator到底属于类还是函数?
vector<string>我知道是可以定义一个模板类对象,而它后面跟的::到底
是干什么的?什么意思?
能否在C++在模拟这种写法给个例子?

[解决办法]
是类形。这个类型定义在另一个类里面,所以要用作用域符::表示是里面的成员(类型成员)。
[解决办法]

C/C++ code
//临时写的.不知是否是这意思  建议看STL源码剖析#include <iostream>template<typename T>class Vector{public:    typedef T* Iterator;    Vector()    {        cnt = 0;        arr = new T[100];    }    ~Vector()    {        delete []arr;    }    Iterator Begin()    {        return &arr[0];    }    Iterator End()    {        return &arr[cnt];    }    void Push_Back(T v)    {        if(cnt >= 100 )        {            std::cout << "Vecror容量已满,不可再插入。" << std::endl;            return;        }        arr[cnt] = v;        cnt++;    }    T operator[](int i)    {//[] 下标        return arr[i];    }private:    int cnt;    T *arr;};int main(){    //char*    Vector <char*>vecc;    for(int i = 0; i < 4; i++)    {        vecc.Push_Back("A");    }    std::cout<<vecc[1]<<std::endl;    system("pause");    return 0;}
[解决办法]
应该是一个数据类型,表示是属于vector<string>中定义的一个类型

读书人网 >C++

热点推荐