QT(29)-数据类型-QList-QMap-QListIterator-QMutableListIterator基本操作-示例源码

    用的语言多了,JAVA、 C++、 python、 JS ,数据类型的用法大致相同但细节处又不一样。今天MARK一下QT 底下的QList、 QMap、 QListIterator、 QMutableListIterator。一般常用的也就是变量的增删改查。

1.QList

2.QMap

3.容器 大体分两种JAVA风格和STL

4..QListIterator

5.QMutableListIterator

 


1.QList

 QList<QString> m_list;//赋值比较容易 查找速度不快
 1.1 赋值 insert() 插入 前后 中间
    m_list[i]="";
    m_list.append("end");            // 在列表尾部添加
    m_list.prepend("start"); //列表头部
    m_list.insert(m_index,"m_content");//m_index位置插入m_content
  1.2 查询 数组个数,是否包含,索引,内容
    m_list.contains("mm");//是否包含
    m_list.count("mm");//包含的个数
    m_list.size();//大小
    int m_index=list.indexOf("mm")//序号、匹配的位置
    int m_data=list.at(m_index)//查找位置上的数据
  1.3删除 最前 最后 特定位置
    replace()
    removeAt()
    removeFirst()
    removeLast()
  1.4 换位
   m_list.swap(1,3);

2.QMap

  2.1 赋值insert() 插入 前后 中间
    map["one"] = 1;          // 向map中插入("one",1)//key m_value
    map["three"] = 3;
    map.insert("seven", 7);   // 使用insert()函数进行插入
   2.2 查询 数组个数,是否包含,索引,内容
   int value1 = map["six"];//如果没有自动插入
   int value2 = map.value("five");//如果没有不会自动插入
   int value3 = map.value("nine", 9);//默认返回0
    map.insert("ten", 10);
    map.insertMulti("two", 2);//一键多值
    map.insertMulti("two", 4);

3.容器 大体分两种JAVA风格和STL

 

STL


4..QListIterator

QListIterator<QString> QListIterator<QString> i_iterator(list); 
 QList<QString> list;
    list << "A" << "B" << "C" << "D";
   4.1 赋值
       4.2 遍历列表 正向、反向                
    while (i_iterator.hasNext())          // 正向遍历列表,结果为A,B,C,D
        qDebug() << i_iterator.next();
    while (i_iterator.hasPrevious())         // 反向遍历列表,结果为D,C,B,A
        qDebug() << i_iterator.previous();

5.QMutableListIterator

 QMutableListIterator<QString> j_iterator(list);
    先返回尾部,再判断是否有前一个值。
 5.1 返回头部 尾部
     j_iterator.toBack();
     j_iterator.toFront();
 5.2 删除 先回尾部再判断
      j_iterator.toBack();                                // 返回列表尾部
     while (j_iterator.hasPrevious()) {
        QString str = j_iterator.previous();
        if(str == "B") j_iterator.remove();             
    }
 5.3 查找
 5.4 赋值
     j_iterator.toBack();
    if(j_iterator.hasPrevious()) j_iterator.previous() = "N";    // 直接赋值
     j_iterator.setValue("M");                           // 使用setValue()进行赋值

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值