qt的Qmap值复制给另一个Qmap
时间: 2023-07-30 16:05:16 浏览: 989
Qt实现文件拷贝
在 Qt 中,`QMap` 类提供了多种方式来将一个 `QMap` 对象的值复制给另一个 `QMap` 对象。以下是其中两种常用的方式:
方式一:使用 `QMap` 的拷贝构造函数
`QMap` 对象的拷贝构造函数可以用来创建一个与原始 `QMap` 对象完全相同的新对象。例如:
```c++
#include <QMap>
#include <QDebug>
int main()
{
QMap<QString, int> origMap{{"apple", 1}, {"banana", 2}, {"cherry", 3}};
QMap<QString, int> newMap = origMap;
qDebug() << "origMap:";
for (auto it = origMap.begin(); it != origMap.end(); ++it) {
qDebug() << it.key() << it.value();
}
qDebug() << "newMap:";
for (auto it = newMap.begin(); it != newMap.end(); ++it) {
qDebug() << it.key() << it.value();
}
return 0;
}
```
输出:
```
origMap:
"apple" 1
"banana" 2
"cherry" 3
newMap:
"apple" 1
"banana" 2
"cherry" 3
```
在上面的示例中,我们通过 `origMap` 对象的拷贝构造函数创建了一个新的 `QMap` 对象 `newMap`,并将 `origMap` 中的值全部复制到了 `newMap` 中。
方式二:使用 `QMap::operator=` 运算符
`QMap` 类还提供了 `operator=` 运算符,可以用来将一个 `QMap` 对象的值赋值给另一个 `QMap` 对象。例如:
```c++
#include <QMap>
#include <QDebug>
int main()
{
QMap<QString, int> origMap{{"apple", 1}, {"banana", 2}, {"cherry", 3}};
QMap<QString, int> newMap;
newMap = origMap;
qDebug() << "origMap:";
for (auto it = origMap.begin(); it != origMap.end(); ++it) {
qDebug() << it.key() << it.value();
}
qDebug() << "newMap:";
for (auto it = newMap.begin(); it != newMap.end(); ++it) {
qDebug() << it.key() << it.value();
}
return 0;
}
```
输出:
```
origMap:
"apple" 1
"banana" 2
"cherry" 3
newMap:
"apple" 1
"banana" 2
"cherry" 3
```
在上面的示例中,我们先创建了一个空的 `QMap` 对象 `newMap`,然后使用 `operator=` 运算符将 `origMap` 中的值全部复制到了 `newMap` 中。
阅读全文