标签: qset

如何修改QSet的元素?

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

foreach 这不是一个好的解决方案,因为它会复制。

使用此代码:

QMutableSetIterator<QuadPattern>  it(texture);
while (it.hasNext())
{
    it.next();
    it.value().setCoordinate(...));
}
Run Code Online (Sandbox Code Playgroud)

我收到编译错误:

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

为什么会出现这个错误?

c++ qt qset

3
推荐指数
1
解决办法
539
查看次数

QSet:qHash和自定义类的错误

我想QSet<Tag>在我的程序中创建一个我想要使​​用的东西.Tag是我的自定义类.

当我构建代码时,我获得了有关qHash重载的gcc错误:

Exercise.cpp.o
In file included from /opt/Qt/5.5/gcc_64/include/QtCore/qglobal.h:74:0,
                 from /opt/Qt/5.5/gcc_64/include/QtCore/qchar.h:37,
                 from /opt/Qt/5.5/gcc_64/include/QtCore/qstring.h:41,
                 from /opt/Qt/5.5/gcc_64/include/QtCore/QString:1,
                 from /src/wmathtest/LaTeXText.h:4,
                 from /src/wmathtest/Exercise.h:4,
                 from /src/wmathtest/Exercise.cpp:1:
/opt/Qt/5.5/gcc_64/include/QtCore/qhash.h: In instantiation of ‘uint qHash(const T&, uint) [with T = WMathTest::Tag; uint = unsigned int]’:
/opt/Qt/5.5/gcc_64/include/QtCore/qhash.h:952:32:   required from ‘QHash<Key, T>::Node** QHash<Key, T>::findNode(const Key&, uint*) const [with Key = WMathTest::Tag; T = QHashDummyValue; QHash<Key, T>::Node = QHashNode<WMathTest::Tag, QHashDummyValue>; uint = unsigned int]’
/opt/Qt/5.5/gcc_64/include/QtCore/qhash.h:808:36:   required from ‘QHash<Key, T>::iterator QHash<Key, T>::insert(const Key&, const T&) [with Key …
Run Code Online (Sandbox Code Playgroud)

c++ qt qhash qset

2
推荐指数
2
解决办法
3814
查看次数

QSet 追加自定义对象

我有以下课程

class Test{
    int a;
    int b;
};
Run Code Online (Sandbox Code Playgroud)

我想要的只是有一个QSet<Test>我将插入一些测试对象的地方。

int main(int argc, char *argv[]) {
    QCoreApplication a(argc, argv);
    QSet<Test> setTest;
    setTest.insert(Test());
    return QCoreApplication::exec();
}
Run Code Online (Sandbox Code Playgroud)

问题是我由于某种原因收到以下错误,我不知道为什么或如何解决它。

C:\Qt\5.14.2\msvc2017_64\include\QtCore/qhashfunctions.h(118): error C2665: 'qHash': 24 个重载中没有一个可以转换所有参数类型 C:\Qt\5.14.2\msvc2017_64 \include\QtCore/qlocale.h(62): 注意:可能是 'uint qHash(const QLocale &,uint) noexcept' C:\Qt\5.14.2\msvc2017_64\include\QtCore/qregexp.h(56):注意:或
正在使用 [ T=Test ] C:\Users\vlad.dumitru\CLionProjects\Test\main.cpp(11) 进行编译:注意:请参阅对正在编译的类模板实例“QSet”的引用 C:\Qt\5.14.2\ msvc2017_64\include\QtCore/qhashfunctions.h(118):错误C2056:非法表达式NMAKE:致命错误U1077:'C:\PROGRA~2\MICROS~2\2017\BUILDT~1\VC\Tools\MSVC\1416~ 1.270\bin\Hostx64\x64\cl.exe' : 返回码 '0x2' 停止。NMAKE: 致命错误 U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64\nmake.exe"': 返回代码 ' 0x2' 停止。NMAKE: 致命错误 U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64\nmake.exe"': 返回代码 ' 0x2' 停止。NMAKE: 致命错误 U1077: '"C: …

c++ qt qhash qset

0
推荐指数
1
解决办法
88
查看次数

标签 统计

c++ ×3

qset ×3

qt ×3

qhash ×2