【发布时间】:2018-07-07 16:48:10
【问题描述】:
有没有什么方法可以在不明确指定 K 和 T 的情况下从 QMap 获取 java 样式的迭代器?
例如写作
QMap<QString, SomeType> map;
auto qIt = map.getIterator();
而不是
QMap<QString, SomeType> map;
QMapIterator<QString, SomeType> qIt(map);
【问题讨论】:
-
你想达到什么目的?你期望迭代器代表什么?
-
只是为了减少编码。在 C++ 中使用 auto 非常有趣,在 QMapIterator 的情况下,auto 的使用将受到限制,您应该明确定义 qmap 使用的类型,有时可能会很乏味
-
我知道这并不能回答您的问题,但它可能会帮助其他人知道 STL 样式的迭代器可以与
for (auto iter=map.cbegin (); iter != map.cend (); ++iter) {...}一起愉快地工作。我不知道非 const 迭代器是否也能正常工作,只是我通常像上面那样使用 const 迭代器。