希望这是一个可以快速简单回答的问题。我需要 bool(*)(char,char)
在我的typedef
下面,或者我可以使用 multimap<char,char>::iterator
为了使用mmIt
带有 map 的迭代器 mmap
?感谢您的帮助!
代码片段:
bool fncomp (char lhs, char rhs) {return lhs < rhs;}
typedef multimap<char,int,bool(*)(char,char)>::iterator mmIt;
multimap<char,int,bool(*)(char,char)> mmap(fncomp);
最佳答案
如果multimap<K,V,Comp>::iterator
是一个不依赖于比较器类型的其他东西的 typedef,你可能没问题 - 但这是一个实现细节,如果它是真正的嵌套类型,肯定会破坏。
避开它:
typedef multimap<char,int,bool(*)(char,char)> mMap;
typedef mMap::iterator mmIt;
并避免在各处写出整个多重映射参数列表。
关于c++ - 多重映射迭代器是否也需要排序函数的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9215971/