从 QMap<K、T> 获取 Java 样式迭代器,而不指定 T、K

Getting Java style Iterator from QMap<K, T> without specifying T, K

本文关键字:迭代器 gt lt QMap 获取 Java 样式      更新时间:2023-10-16

有没有办法在不明确指定 K 和 T 的情况下从 QMap 获取 java 风格迭代器?

例如,写作

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