Qt中在QVector、QMap等容器类中使用value()和at()函数的要点

Qt的QVectorQMap等容器类实现了用于对成员进行只读存取的value()at()等接口函数。其中,value()函数允许设置一个当目标索引不存在时的默认返回值,而at()函数要求目标索引必须存在。

此外,value()at()等接口函数返回的是目标成员的一个常量副本,而非标准C++ STL中近似的容器类的相关函数所定义的常量引用。

即,在Qt中value()at()等接口函数的定义为:

const T value(const Key &key, const T &defaultValue = T()) const;
const T &QVector::at(int i) const;

C++ STL中at()函数的定义为:

const mapped_type& at (const key_type& k) const;

参考资料:

https://doc.qt.io/qt-5/qmap.html

https://doc.qt.io/qt-5/qvector.html

https://www.cplusplus.com/reference/map/map/

https://www.cplusplus.com/reference/vector/vector/

it
除非特别注明,本页内容采用以下授权方式: Creative Commons Attribution-ShareAlike 3.0 License