参考这个问题StackoVerflow 529831,这是建议的方法之一
template<typename Map> typename Map::const_iterator
greatest_less(Map const& m, typename Map::key_type const& k) {
//How to print K and Map m
typename Map::const_iterator it = m.lower_bound(k);
if(it != m.begin()) {
return --it;
}
return m.end();
}
我有兴趣打印关键K和Map m,怎么会这样。
答案 0 :(得分:4)
使用<<
运算符,确保为<<
和Map::key_type
类型定义Map::data_type
(您将知道代码不是这样的代码)不会编译。)
cout << k << endl;
for (typename Map::const_iterator it = m.begin(); it != m.end(); ++i) {
cout << it->first << " -> " << it->second << endl;
}
e.g。如果您的Map::data_type
是struct fraction
成员float numerator
和float denominator
,
ostream& operator<<(ostream& os, const fraction& obj) {
return os << obj.numerator << '/' << obj.denominator;
}