Qt 常用容器遍历 - QList和QMap

QList遍历

    QList<int> list;
    
    list << 1 << 2 << 3 << 4 << 5;
    
    qDebug() << "QList第一种遍历";
    QList<int>::iterator it1 = list.begin();
    
    for(; it1!=list.end(); ++it1)
    {
        qDebug() << *it1;
    }
    
    qDebug() << "QList第二种遍历";
    
    QListIterator<int> it2(list);
    
    for(it2.toFront(); it2.hasNext();)
    {
        qDebug() << it2.next();
    }
    
    qDebug() <<"";
    
    for(it2.toBack(); it2.hasPrevious();)
    {
        qDebug() << it2.previous();
    }

在这里插入图片描述

QMap遍历

    QMap<QString, QString> map;
    
    map["Demo1"] = "样式1";
    map["Demo2"] = "样式2";
    map["Demo3"] = "样式3";
    map["Demo4"] = "样式4";
    map["Demo5"] = "样式5";
    
    qDebug() << "QMap第一种遍历";
    
    QMap<QString, QString>::iterator it1 = map.begin();
    
    for(; it1!=map.end(); ++it1)
    {
        qDebug() << it1.key() + " -- " + it1.value();
    }
    
    qDebug() << "QMap第二种遍历";
    
    QMapIterator<QString, QString> it2(map);
    
    it2.toFront();
    
    while (it2.hasNext())
    {
        it2.next();
        qDebug() << it2.key() + " -- " + it2.value();
        
    }
    
    qDebug() << "-----------------";
    it2.toBack();
    
    while(it2.hasPrevious())
    {
        it2.previous();
        qDebug() << it2.key() + " -- " + it2.value();
    }

在这里插入图片描述


在QList与QMap结合使用时,发生了一点意外

	QMap<QString, QString> rowlist;
	QList<QString> allValues;
	allValues.clear();
	rowlist.clear();
	rowlist["text1"]= pRow->ReadString("内容1", "");
	rowlist["text2"]= pRow->ReadString("内容2", "");
	rowlist["text3"]= pRow->ReadString("内容3", "");

	for(int count = 0 ; count < rowlist.count(); count ++)
	{
		allValues << rowlist[count];
	}
	//allValues这样加的数据顺序有问题
	//正确的QList添加QMap数据,是一项一项添加
	allValues << rowlist.values("text1");
	allValues << rowlist.values("text2");
	allValues << rowlist.values("text3");
	//这样存入的顺序才是“内容1、内容2、内容3”

希望这篇文章可以帮到你们。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值