Qt入门系列开发教程STL篇QList动态数组使用方法

Posted 鱼酱2333

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt入门系列开发教程STL篇QList动态数组使用方法相关的知识,希望对你有一定的参考价值。

来了,老弟,不收藏你就后悔吧 !****点赞👍收藏⭐️留言📝 不迷路~~~

😈「作者主页 」鱼酱2333
😈「 B站首页 」鱼酱2333
😈「本文录入专栏」Qt入门系列开发教程
😈「本文内容」:QList动态数组的用法

0.应用场景

  • FIFO (first in, first out) 先进的先出
  • FILO (first in, last out) 先进后出

1.QList

简介

QList 是 Qt 的通用容器类之一。它将其项目存储在相邻的内存位置,并提供基于索引的快速访问。

template using QVector = QList;
在Qt6里QVector就是QList,所以两者方法是一样的,所以下面只说QList即可。

尾部添加
头部添加
插入
填充
迭代器删除
弹出尾部
弹出头部
清空
删除1个
删除头部
删除指定索引
for循环遍历
for_each
find
QList
pushback
push_front
insert
fill
erase
pop_back
pop_front
clear
removeOne
removeFirst
removeAt
for
std::for_each
std::find
索引修改

//末尾追加
void push_back(QList::parameter_type value)
//头部追加
void push_front(QList::rvalue_ref value)
//指定索引插入
QList::iterator QList::insert(qsizetype i, QList::parameter_type value)
//填充数据
QList<T> &QList::fill(QList::parameter_type value, qsizetype size = -1)

//迭代器删除
 template <typename T, typename AT> qsizetype erase(QList<T> &list, const AT &t)
 
 
 //弹出尾部
void pop_back()
//弹出头部
void pop_front()

//清空
void clear()

//从列表中删除第一个比较等于 t 的元素。 返回一个元素是否实际上已被移除。
template <typename AT> bool removeOne(const AT &t)

//删除列表中的第一项。 调用此函数相当于调用 remove(0)。 列表不能为空。 如果列表可以为空,
//请在调用此函数之前调用 isEmpty()。
void removeFirst()
 //删除索引位置 i 处的元素。
void removeAt(qsizetype i)

    auto myobject = [&](quint32 i)
        qDebug()<< i;
    ;
    QVector<quint32> vec1,2,3,4,5,6;
    std::for_each (vec.begin(), vec.end(), myobject);

    //查
    auto it = std::find(vec.begin(),vec.end(),4);

   QVector<quint32> vec11,22,33,55;
   vec[0]=1;

3.QList实操

3.1数据初始化

3.1.1 初始化列表初始化

void demo1_1()

    struct Person
    
        QString name;
        quint32 age;
    ;

    //11,22,33,55
    QVector<quint32> vec11,22,33,55;

    //11,22,33,55
    QVector<quint32> vec1=11,22,33,55;

    //aaa,1,bbb,2,ccc,3,ddd,4
    QVector<Person>  vec2=Person"aaa",1,Person"bbb",2,Person"ccc",3,Person"ddd",4;

    //aaa,1,bbb,2,ccc,3,ddd,4
    QVector<Person>  vec3=vec2;

3.1.2 构造函数初始化

void demo1_2()

    QVector<char> vec = 'a','b','c','d';

    //初始化4 个 a字符
    QVector<char> vec1(4,'a');//a,a,a,a

    //使用迭代器初始化
    QVector<char> vec2(vec.begin(),vec.end());//a,b,c,d

    //使用一个vector初始化
    QVector<char> vec3(vec);//a,b,c,d

3.1.3fill函数初始化

void demo1_3()


 //初始化100个
  QVector<char> vec;
  vec.fill('S',100);//100个S

3.2数据添加

3.2.1QList末尾添加数据

void demo2_1()

    QList<quint32> vec;
    vec.push_back(111);//111
    vec.push_back(222);//111,222
    vec.push_back(333);//111,222,333


3.2.2QList头部添加数据

void demo2_2()

    QList<quint32> vec;
    vec.push_front(111);//111
    vec.push_front(222);//222,111,
    vec.push_front(333);//333,222,111


3.2.3QList插入添加数据以上是关于Qt入门系列开发教程STL篇QList动态数组使用方法的主要内容,如果未能解决你的问题,请参考以下文章

Qt入门系列开发教程STL篇QQueue 队列使用方法

Qt入门系列开发教程STL篇QMultiMap键值存储类使用方法

Qt入门系列开发教程STL篇QMultiHash多值散列表

Qt入门系列开发教程STL篇QHash哈希表使用方法

Qt入门系列开发教程STL篇QMap红黑树键值对使用方法

Qt入门系列开发教程基础控件篇QLabel文本标签