首页 > 编程知识 正文

qt创建链表(qt提升为类有什么用)

时间:2023-05-04 18:14:51 阅读:64488 作者:1570

容器类

Qt的容器比标准模板库中的容器类轻、安全、易于使用。 然后是线程安全。 Qt的容器类格式为q列表。 t是具体类型,可以是int、float等简单类型,也可以是Qstring、QDate等类型,但不是QObject及其子类。 t必须是可以赋值的类型。

Qt的容器类如下:

顺序容器相关容器顺序容器类:QList

最常用的容器类是通过数组列表方式实现的,在它前面和后面添加数据非常快,通过QList以下的索引方式访问数据。

QList用于添加、插入、替换、移动、删除和删除数据项的函数包括insert ()、replace ()、removeAt ()、move ()、swap ()、append ()、prepend )和prepepd

例如,QListQString list; list'one''two''three '; QString str1=list[1]; qtringstr0=list.at(0; QList的isEmpty (函数在数据项为空时返回true,size )函数返回数据项的数量。

QLinkedList

在链列表的容器类中,数据项不存储在连续内存中,而是基于迭代器访问数据项,插入和删除数据项的操作时间相同。 q矢量

提供动态数组的功能。 用以下索引访问数据。 与QList中的函数接口几乎相同,但由于QVector中的数据项是连续存储的,因此性能高于后者。 q堆栈

像堆栈先进先出操作的容器类一样,推(和pop )是主要的接口函数。

示例:堆栈堆栈; sack.push(10; sack.push(20; sack.push(30; while (! stack.isEmpty () ) coutstack.pop ) ) endl; 程序按照30、20、10的顺序输出

q队列

它提供了类似于队列先进先出操作的容器类,enqueue (和dequeue )是主要操作函数。

示例:队列队列; queue.enqueue(10; queue.enqueue(20; queue.enqueue(30; while (! queue.isEmpty () (coutqueu.dequeue ) ) endl; 程序为10、20、30 关联容器类:

qmapqmultimapqhashqmultihashqset

QMultiMap和QMultiHash支持用一个键关联多个值,而QHash和QMultiHash类使用散列函数进行搜索,从而缩短了搜索时间。QSet

QSet是基于哈希表的集合模板类,存储数据顺序不定,查找速度非常快,QSet内部用QHash实现。

定义QSet容器和输入数据的实列代码如下:

QSet set;

set“dog”“cat”“tiger”

测试该值是否包含在此集合中,然后使用contains ()函数。 以下是示例。

if (! set.contains(「cat”) )

QMap

QMapKey,t提供字典(关联数组),键映射到值。 将数据存储在QMap中的顺序是密钥,使用QHash会更快。

用于定义QMapQString、int变量和赋值的示例代码如下:

QMapQString,intmap;

map[“one”]=1;

map[“two”]=2;

map[“three”]=3;

您可以使用insert (使用函数赋值,也可以使用remove )删除键-值对,如下例所示。

map.insert(「four”,4 );

map.remove(「two”);

要搜索值,请使用运算符【】或value (函数。 以下是示例。

int num1=map[“one”];

intnum2=map.value(「two”);

如果在映射表中找不到指定的键,则返回默认的构造函数值。 例如,如果值类型为字符串,则返回空字符串。

value ) )函数搜索键值时,也可以指定默认返回值。 作为示例,timeout=map.value('timeout ',30 ); 如果在映射中找到密钥“TIMEOUT”,则返回相关值,否则返回值为30。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。