我已经QSet<QuadPattern> texture;想要循环修改所有QuadPattern。
foreach 这不是一个好的解决方案,因为它会复制。
使用此代码:
Run Code Online (Sandbox Code Playgroud)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
Run Code Online (Sandbox Code Playgroud)
函数setCoordinate是这样的:
内联void setCoordinate(const std :: pair&value){_coordinate = value; }
为什么会出现这个错误?
错误是因为您尝试修改函数返回的const对象QMutableSetIterator::value()。
我相信您无法通过这种方式修改您的商品集,因此没有此类API。修改所有项目所需要的只是清除集合并再次插入新项目。
| 归档时间: |
|
| 查看次数: |
539 次 |
| 最近记录: |