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