无论设计是否良好,我的方法都声明了一个变量,该变量需要根据正在使用的数据结构(由输入参数确定)main()
来预期满足BidirectionalIterator
定义(特别是list<>::iterator
or )的任何迭代器。vector::iterator
由于我无法模板化该main()
方法,如何做到这一点?
例如,而不是:
int main(int argc, const char* argv[]) {
vector<Person>::iterator iterator0;
list<Person>::iterator iterator1);
multimap<string, Person>::iterator iterator2;
}
由于所有迭代器都满足 的要求BidirectionalIterator
,我想做:
int main(int argc, const char* argv[]) {
bidirectionaliterator iterator0;
}
然后,我不必不断检查程序使用哪种数据结构和 if 语句来存储迭代器并使用我想要的迭代器。