请问迭代器的初级问题
我常看到有这样的代码:vector<string>::iterator it;
这种写法在C++中好像没有看到过,请问iterator到底属于类还是函数?
vector<string>我知道是可以定义一个模板类对象,而它后面跟的::到底
是干什么的?什么意思?
能否在C++在模拟这种写法给个例子?
[解决办法]
是类形。这个类型定义在另一个类里面,所以要用作用域符::表示是里面的成员(类型成员)。
[解决办法]
//临时写的.不知是否是这意思 建议看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>中定义的一个类型