项目应该提供随机数,但这并不重要,然后在第一个地图中随机查找该数量并添加到第二个地图中。
int rand = 2;
QPixmap pixmap1 = QPixmap (":/imag/sedam_one.jpg");
QPixmap pixmap2 = QPixmap (":/imag/gedam_one.jpg");
QPixmap pixmap3 = QPixmap (":/imag/tedam_one.jpg");
QMap<int, QPixmap> map;
map.insert(1, pixmap1);
map.insert(2, pixmap2);
map.insert(3, pixmap3);
QMap<int, QPixmap> myMap;
myMap.insert(map.key(rand), map.value(rand));
答案 0 :(得分:0)
根据rand
不是有效密钥时所需的行为,您的代码会有所不同。
如果您想忽略map
中没有的密钥,您可以使用:
if ( map.find(rand) != map.end() )
{
myMap.insert(map.key(rand), map.value(rand));
}
如果你想要一个默认构造的值,当键不存在地图时,你不会从上面的代码创建if
检查,只需使用你拥有的代码:
myMap.insert(map.key(rand), map.value(rand));
答案 1 :(得分:0)
这是一种方法:
int rand = 2;
QPixmap pixmap1 = QPixmap (":/imag/sedam_one.jpg");
QPixmap pixmap2 = QPixmap (":/imag/gedam_one.jpg");
QPixmap pixmap3 = QPixmap (":/imag/tedam_one.jpg");
QMap<int, QPixmap> map;
map.insert(1, pixmap1);
map.insert(2, pixmap2);
map.insert(3, pixmap3);
QMap<int, QPixmap> myMap;
myMap.insert(rand, map.value(rand));
注意最后一行。 map.key(rand)
应该只是rand
,因为方法map.key()
要求您输入一个值,例如QPixmap