gpt4 book ai didi

c++ - 如何修改 QSet 的元素?

转载 作者:太空狗 更新时间:2023-10-29 20:40:22 33 4
gpt4 key购买 nike

我有QSet<QuadPattern> texture;我想循环修改所有 QuadPattern。

foreach不是好的解决方案,因为它会生成拷贝。

使用此代码:

QMutableSetIterator<QuadPattern>  it(texture);
while (it.hasNext())
{
it.next();
it.value().setCoordinate(...));
}

我得到一个编译错误:

error: C2662: 'QuadPattern::setCoordinate' : cannot convert 'this' pointer from 'const QuadPattern' to 'QuadPattern &'
Conversion loses qualifiers

函数setCoordinate是这样的:

inline void setCoordinate(const std::pair &value) { _coordinate = value; }

为什么会出现这个错误?

最佳答案

错误是因为您试图修改 QMutableSetIterator::value() 函数返回的 const 对象。

我相信你不能以那种方式修改你的集合的项目,因此没有这样的 API。您需要修改所有项目,只需清除集合并再次插入新项目即可。

关于c++ - 如何修改 QSet 的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24448001/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com