我想就一个简单的代码示例提出一些想法:
class Base{
public:
void doSomeNastyThings(int param)
{
IteratorInterface *iter_face = iterators[param];
for(auto it = iter_face->begin(); it != iter_face->end(); it++)
{
//do another nasty things
}
}
protected:
std::map<int, IteratorInterface*> iterators;
};
而且我希望从派生类中填充迭代器映射....但是我怎样才能以 STL 样式创建这样的 IteratorInterface 呢?所有迭代器都会为我提供对相同类型的访问(让我称之为“T”),但它们可以有不同的类型:
std::map<T>::iterator, std::vector<T>::iterator, foo<T>::iterator.