有什么方法可以从QMap获取java样式的迭代器而无需显式指定K和T吗?

例如写作

QMap<QString, SomeType> map;
auto qIt = map.getIterator();


代替

QMap<QString, SomeType> map;
QMapIterator<QString, SomeType> qIt(map);

最佳答案

如果您只是想节省一些重复的输入,则可以编写一个小的函数模板,以利用将从传递的参数中推导出模板参数的事实。

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);

09-08 11:43