QList(增删改查)示例

特点:支持随机访问,其界面也是基于索引的,在中间的任意一端插入或移除项都是非常快速的

注:访问QList中的值时,尽量采用value(int i),因为value查不到此值时会返回一个默认值0,而at(int i)则会引起崩溃,并且at返回的值不可修改,不便于后期对数据的处理

	//定义QList变量
    QList<QString> list;

    /***********在列表中添加元素***********/
    // 方式1 <<
    list << "1" << "2" << "3";
    list << "4";//会添加到末尾

    // 方式2 添加到末尾 不会覆盖原来的
    list.append("5");
    list.push_back("6");

    // 方式3 添加到头部 不会覆盖原来的
    list.prepend("0");
    list.push_front("00");

    // 方式4 在位置4插入元素
    list.insert(4, "4");

    /***********改变位置***********/
    list.swap(1,3);//交换位置1和位置3的元素
    list.move(1,4);//把第一个元素移到第四个元素,其他元素顺移

    /***********查找元素***********/
    QString str;
    int index = list.indexOf("mm");//return该元素的下标值;若有第二个参数则表示查找第几个这个字符
    str = list.back();//返回最后一个元素 同list.last();
    str = list.front();//返回第一一个元素 同list.first();
    bool isCon = list.contains("23");//列表是否有某元素 成功返回true 否则false
    qDebug() << "str=" << str ;

    index = list.count();//列表总元素 同list.length();
    index = list.count("4");//列表中有几个这样的元素

    /***********从列表中删除元素***********/
    //位置下标
    str = list.takeAt(2); //删除第3个 并返回结果
    list.removeAt(3);
    //值
    list.removeOne(1);//删除列表里遇到的第一个该值
    //示例:
     QList<QString> list;
 	 list << "sun" << "cloud" << "sun" << "rain";
	 list.removeOne("sun");
 	 // list: ["cloud", ,"sun", "rain"]

    /***********修改元素的值***********/
    list.replace(2,"bc");//参数1 元素下标,参数2 修改的结果值
    list[2] = "opopo";

	/***********判断是否包含某个值***********/
	if(list.contains("value"))
	{
		return true;
	}

    /***********遍历访问元素***********/
    //方式1:
    for(int i = 0; i < list.size(); ++i)
    {
        //at()操作比操作符[]更快,因为它不需要深度复制
        qDebug() << list[i] << list.at(i) << list.value(i) ;
    }
    //方式2:
    QList<QString>::iterator it;
    for(it=list.begin(); it!=list.end();++it)
    {
        if((*it)== "00")
        {
            it = list.erase(it,it+2);//删除从起始位置到结束位置的元素
        }
        qDebug() << "it" << (*it);
    }

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咸鱼2333号程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值