面试题答案
一键面试#include <iostream>
#include <vector>
class MyContainer {
private:
std::vector<int> data;
public:
class MyIterator {
private:
std::vector<int>::iterator it;
public:
MyIterator(std::vector<int>::iterator iter) : it(iter) {}
int operator*() {
return *it;
}
MyIterator& operator++() {
++it;
return *this;
}
MyIterator operator++(int) {
MyIterator temp = *this;
++it;
return temp;
}
bool operator==(const MyIterator& other) const {
return it == other.it;
}
bool operator!=(const MyIterator& other) const {
return it != other.it;
}
};
MyIterator begin() {
return MyIterator(data.begin());
}
MyIterator end() {
return MyIterator(data.end());
}
void push_back(int value) {
data.push_back(value);
}
};
你可以使用如下方式测试这个类:
int main() {
MyContainer container;
container.push_back(1);
container.push_back(2);
container.push_back(3);
for (MyContainer::MyIterator it = container.begin(); it != container.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}