有什么方法可以从QMap获取Java样式的迭代器而无需显式指定K和T吗?
例如,写作
QMap<QString, SomeType> map;
auto qIt = map.getIterator();
代替
QMap<QString, SomeType> map;
QMapIterator<QString, SomeType> qIt(map);
答案 0 :(得分:3)
如果您只是想节省一些重复的输入,那么您可以编写一个小的函数模板,以利用将从传递的参数推导出模板参数的事实。
template<typename Key, typename Value>
QMapIterator<Key, Value> make_qiter (QMap<Key, Value> &map)
{
return(QMapIterator<Key, Value>(map));
}
然后用作...
QMap<QString, SomeType> map;
auto qIt = make_qiter(map);