0
我已经为作业做出了自己的抽象类Vector。这个向量应该有迭代器。我在Vector的公共部分制作迭代器。这是我的迭代器代码:矢量迭代器覆盖运算符 - >
class iterator {
friend class Vector;
Vector* v_;
int position_;
iterator(Vector* v,int position)
: v_(v),
position_(position)
{}
public:
iterator()
: v_(0),
position_(0)
{}
iterator& operator++() {// pre
position_++;
return *this;
}
iterator operator++(int) {//post
iterator res=*this;
position_++;
return res;
}
T& operator*() {
return v_->buffer_[position_];
}
T* operator->() {
return &buffer_[position_];
}
bool operator==(const iterator& other) const {
return position_ == other.position_;
}
bool operator!=(const iterator& other) const {
return !operator==(other);
}
};
我的问题是如果运算符 - >是正确定义的。
感谢
鉴于它不会像编写的那样编译,所以显然是不正确的当你在'operator->'的定义中使用它时,没有'buffer_';也许你的意思是'v_-> buffer_'?) – 2011-05-09 20:00:44
想知道你的代码是正确的吗?尝试一下!制作一个使用它的小测试程序,看它是否能给你预期的结果。 – hammar 2011-05-09 20:03:35
这只是代码的一部分:) – 2011-05-09 20:07:15