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~~

相关推荐
咕咕嘎嘎102413 小时前
C/C++内存对齐
java·c语言·c++
电子_咸鱼13 小时前
【QT SDK 下载安装步骤详解 + QT Creator 导航栏使用教程】
服务器·开发语言·网络·windows·vscode·qt·visual studio code
qq_4798754314 小时前
C++ 模板元编程
java·开发语言·c++
爱装代码的小瓶子14 小时前
【cpp知识铺子】map与set的底层AVL树
开发语言·数据结构·c++·b树·算法·链表
修炼地14 小时前
代码随想录算法训练营第二十八天 | 动态规划理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
c++·算法·动态规划
吗~喽14 小时前
【C++】模板进阶
c语言·开发语言·c++
我不会插花弄玉14 小时前
类与对象-下【由浅入深-C++】
c++
Tandy12356_15 小时前
手写TCP/IP协议栈——ARP超时重新请求
c语言·c++·网络协议·计算机网络
CC.GG15 小时前
【Qt】Qt初识
开发语言·qt
水天需01015 小时前
VS Code C++ 环境配置及 HelloWorld 程序
c++