c++ - 多重映射迭代器是否也需要排序函数的类型?

标签 c++ iterator multimap

希望这是一个可以快速简单回答的问题。我需要 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/

相关文章:

c++ - C++中的逻辑异或运算符?

c++ - 对于C++随机访问迭代器( vector 迭代器),迭代器之间的差异是如何计算的?

c++ - 如何在 STL 算法上接收字符串迭代器

c++ - 在不构造容器的情况下对唯一元素进行迭代

java - 从 multimap 列表中删除元素的最佳方法

c++ - 为什么 `std::unary_function` 仍然在 c++17 中编译?

c++ - 如何使用 Clang++ 生成和使用预编译头文件?

c++ - 使用多重映射

c++ - multimap 和无序图的区别

c++ - h指数计算求教