将QQueue内容存储到QString里面去
时间: 2024-03-25 16:36:00 浏览: 20
可以使用QString的append方法将QQueue中的内容逐个添加到一个QString对象中,如下所示:
```c++
#include <QQueue>
#include <QString>
#include <QDebug>
int main()
{
QQueue<QString> queue;
queue.enqueue("Hello");
queue.enqueue("world");
queue.enqueue("!");
QString str;
while (!queue.isEmpty()) {
str.append(queue.dequeue());
}
qDebug() << str;
return 0;
}
```
运行上面的代码会输出以下内容:
```
"Helloworld!"
```
以上代码中,我们先创建了一个QQueue对象,并向其中添加了3个字符串元素。然后创建了一个空的QString对象str,通过while循环逐个将QQueue中的元素取出并添加到str中,最后输出str的内容。
相关问题
QQueue<QFileInfoList>元素转为QString类型
要将QQueue<QFileInfoList>类型的元素转换为QString类型,需要遍历QQueue中的每个QFileInfoList元素,将其转换为QString类型并连接在一起。可以使用QStringList和QString的join方法来实现:
```c++
QQueue<QFileInfoList> queue; // 假设这是一个QQueue<QFileInfoList>对象
QStringList stringList;
while (!queue.isEmpty()) {
QFileInfoList fileInfoList = queue.dequeue();
QStringList fileInfoStringList;
for (const QFileInfo& fileInfo : fileInfoList) {
fileInfoStringList << fileInfo.absoluteFilePath();
}
QString fileInfoString = fileInfoStringList.join(",");
stringList << fileInfoString;
}
QString result = stringList.join(";");
```
这段代码会将QQueue中的每个QFileInfoList元素转换为一个逗号分隔的文件路径字符串,然后将这些字符串用分号连接在一起,最终得到一个QString类型的结果。
'this' argument to member function 'enqueue' has type 'const QQueue<QString>'
这个错误表明你正在尝试在一个常量对象上调用成员函数`enqueue`。常量对象是不可修改的,因此不能调用非常量的成员函数。
要解决这个问题,你可以检查是否在常量对象上调用了`enqueue`函数,并确保你的对象是可修改的。如果你需要在常量对象上执行修改操作,你可以将对象声明为非常量类型或者使用`mutable`关键字来修饰成员函数。