QT软件开发之入门基础--1.7 容器类

1.7容器类

QList是一种表示链表的模板类(Qt的一种泛型容器类)。它以链表方式存储一组值,并能对这组数据进行快速索引,还提供了快速插入和删除等操作。

QList与QLinkedList和QVector提供的操作极其相似,对大多数操作来说,我们用QList就可以了。其API是基于索引(index)的,因此用起来比QLinkedList更方便(QLinkedList的API是基于迭代器的)。QList比QVector更快,这是由它们在内存中的存储方式决定的。

1.7.1构建QList列表

使用QList类需要先添加#include <QList>头文件。

1.构建QString类型的列表,并输出其中的值:

/*构造一个列表类*/
QList<QString> my_list;

/*向列表中填充数据*/
my_list<<"123"<<"456"<<"789";

/*打印出列表中的数据*/
for(int i=0;i<my_list.count();i++)
{
    //取出列表中指定的值
    qDebug()<<my_list.at(i);
}

2.构建int类型的QList列表,并输出其中的值

/*构造一个列表类*/
QList<qint32> my_list;

/*向列表中填充数据*/
my_list<<123<<456<<789;

/*打印出列表中的数据*/
for(int i=0;i<my_list.count();i++)
{
    //取出列表中指定的值
    qDebug()<<my_list.at(i);
}

1.7.2插入数据

该函数用于在列表的结尾处插入数据。

void QList::append(const T & value)

示例:

QList<QString> list;
list.append("one");
list.append("two");
list.append("three");
// list: ["one", "two", "three"]

1.7.3搜索列表中数值出现的位置

lastIndexOf是从字符串末尾开始检索,检索到子字符,则返回子字符在字符串中的位置,(位置从前向后数,最小位为0,也就是从第0位开始算起)未检测到则返回-1。

int QList::lastIndexOf(const T & value, int from = -1) const

示例:

QList<QString> list;
list<< "A" << "B" << "C" <<"F"<< "B" << "A";
qDebug()<<list.lastIndexOf("B");      // returns 4  从末尾开始查找,返回第一次出现的位置。
qDebug()<<list.lastIndexOf("B", 4);   // returns 4  
qDebug()<<list.lastIndexOf("B", 2);   // returns 1
qDebug()<<list.lastIndexOf("X");      // returns -1  没有就返回-1

1.7.4返回列表索引的数据

at成员函数用于取出列表中对应的数据,参数为数据的索引值!

const T & QList::at(int i) const

遍历输出列表中的数据:

QList<QString> my_list;
my_list<<"123"<<"456"<<"789";
for(int i=0;i<my_list.count();i++)
{
   //取出列表中指定的值
   qDebug()<<my_list.at(i);
}
输出结果:123 456 789

1.7.5其他常用函数接口

1.获取列表中节点的个数

int QList::count() const

2.判断列表是否为空

bool QList::isEmpty() const

3.删除指定数据值

int QList::removeAll(const T & value)

删除列表中出现的所有值并返回删除的条目的数量。

4.删除列表的第一项数据

void QList::removeFirst()

5.删除指定索引位置的值

void QList::removeAt(int i)
上一篇:Python爬虫仅需一行代码,熟练掌握crawl第三方库


下一篇:多个scrapy同时执行