题目:
题解:
template <class T>
class PeekingIterator : public Iterator<T> {
public:
PeekingIterator(const vector<T>& nums) : Iterator<T>(nums) {
flag = Iterator<T>::hasNext();
if (flag) {
nextElement = Iterator<T>::next();
}
}
T peek() {
return nextElement;
}
T next() {
T ret = nextElement;
flag = Iterator<T>::hasNext();
if (flag) {
nextElement = Iterator<T>::next();
}
return ret;
}
bool hasNext() const {
return flag;
}
private:
T nextElement;
bool flag;
};