qt 容器QStringList的常见使用

容器 QStringList是一个字符串链表,里面存放的是QString类型的元素.下面是QStringList链表的一些常见用法.

1.在QStringList中添加元素.

cpp 复制代码
    QStringList weekList;
    weekList<<"星期一"<<"星期二"<<"星期三";

2.在链表尾部添加元素.

cpp 复制代码
    weekList.append("星期天");//在链表尾部添加

3.for遍历链表.使用函数 at(),传入的参数就是元素的位置.下表需要从0数起.

cpp 复制代码
    for(int i=0;i<weekList.size();i++){
        qDebug()<<weekList.at(i);
    }

4.foreach遍历.遍历链表weekList,用QString类型的变量 s 临时存放里面的元素.这也正好印证了QStringList里面存放的元素是QString类型.

cpp 复制代码
    foreach(QString s,weekList){
        qDebug()<<s;
    }

5.使用STL风格迭代器访问.for循环中,只要迭代器没有指向链表的最后一个元素的下一个位置(end()),就继续往后读(++it).

cpp 复制代码
    QStringList::iterator it = weekList.begin();//把迭代器定位到链表开始的位置
    for(;it!= weekList.end();++it){
        qDebug()<<*it;
    }

6.java风格迭代器访问.

QListIterator是字符串链表的迭代器,存放QString类型元素.hasNext():当前位置的下一个位置是否存在元素;next():因为初始位置不是第一个元素,而是第一个元素的前一个位置,所以需要往后偏移一位.

cpp 复制代码
    //QListIterator:字符串链表的迭代器,元素是QString类型.
    QListIterator<QString> itr(weekList);
    while(itr.hasNext()){//后面还有元素就执行
        qDebug()<<itr.next();//next()原因:初始位置不是第一个元素.是第一个元素的前面.
    }

7.contains() QStringList链表中是否存在某个元素.

cpp 复制代码
qDebug()<<"链表中有星期八:"<<weekList.contains("星期八");//不存在 false

8.insert(): 往链表中插入元素.参数:指定插入链表的位置,指定插入的QString类型字符串.

prepend(): 在链表头部插入元素.

cpp 复制代码
weekList.insert(0,"星期零");    //0则表示头部插入
//weekList.prepend("星期零");   //头部插入

9.append() 链表尾部插入元素

cpp 复制代码
weekList.append("星期八");

10.removeFist()删除头元素

cpp 复制代码
    weekList.removeFirst();

11.removeLast()删除尾元素.

cpp 复制代码
    weekList.removeLast();

12.removeOne()删除某个元素

cpp 复制代码
    weekList.removeOne("星期一");

13.removeAt()删除指定位置的元素.

cpp 复制代码
    weekList.removeAt(0);

14.clear()清空整个链表.

cpp 复制代码
    weekList.clear();

all~~

相关推荐
鹅毛在路上了2 小时前
C++, ffmpeg, libavcodec-RTSP拉流,opencv实时预览
c++·opencv·ffmpeg
John_ToDebug2 小时前
定制 ResourceBundle 的实现与 DuiLib 思想在 Chromium 架构下的应用解析
c++·chrome·ui
小欣加油3 小时前
leetcode 面试题01.02判定是否互为字符重排
数据结构·c++·算法·leetcode·职场和发展
王璐WL3 小时前
【c++】c++第一课:命名空间
数据结构·c++·算法
aramae3 小时前
C++ -- 模板
开发语言·c++·笔记·其他
MChine慕青5 小时前
顺序表与单链表:核心原理与实战应用
linux·c语言·开发语言·数据结构·c++·算法·链表
骄傲的心别枯萎7 小时前
RV1126 NO.16:通过多线程同时获取H264和H265码流
linux·c++·音视频·rv1126
落羽的落羽7 小时前
【C++】特别的程序错误处理方式——异常机制
开发语言·c++
空山新雨(大队长)7 小时前
C 语言第一课:hello word c
c++·c·exe
春蕾夏荷_7282977257 小时前
c++ 第三方库与个人封装库
c++·三方库