C++ 这一原则是可维护和可重用设计或代码的基础之一。我不想从头实现迭代器,因为这非常危险。我不认为这是我需要的,因为我仍然可以在幕后使用stl迭代器ContainerMap将使用map::iterator,而ContainerVector将使用vector::i
C++ 这一原则是可维护和可重用设计或代码的基础之一。我不想从头实现迭代器,因为这非常危险。我不认为这是我需要的,因为我仍然可以在幕后使用stl迭代器ContainerMap将使用map::iterator,而ContainerVector将使用vector::i,c++,iterator,containers,C++,Iterator,Containers,这一原则是可维护和可重用设计或代码的基础之一。我不想从头实现迭代器,因为这非常危险。我不认为这是我需要的,因为我仍然可以在幕后使用stl迭代器ContainerMap将使用map::iterator,而ContainerVector将使用vector::iterator。但是由于这两个迭代器没有公共的基类,所以我在AbstractClass class AbstractContainer { public: virtual MyIterator firstValue() = 0; }
这一原则是可维护和可重用设计或代码的基础之一。我不想从头实现迭代器,因为这非常危险。我不认为这是我需要的,因为我仍然可以在幕后使用stl迭代器
ContainerMap
将使用map::iterator
,而ContainerVector
将使用vector::iterator
。但是由于这两个迭代器没有公共的基类,所以我在AbstractClass
class AbstractContainer {
public:
virtual MyIterator firstValue() = 0;
}
class ContainerMap : public AbstractContainer {
private:
map<K, int>;
public:
MyIterator firstValue() { // return iterator over map values (int) }
}
class ContainerVector : public AbstractContainer {
private:
vector<int>;
public:
MyIterator firstValue() { // return iterator over vector values (int) }
}