文章目录QList1.概述2.内部实现与性能3.基本用法ExtraSelection1.概述2.示例QList1.概述在Qt框架中QList 是一个容器类它在内部实现上类似于一个数组但也提供了一些链表的特性。QList 的设计旨在提供一个在多数情况下既高效又方便的通用列表容器。用于存储元素列表。它提供了丰富的功能包括添加、移除、访问元素等。同时它以模板类的形式提供能安全、高效地存储和管理任何同类型的数据集合。2.内部实现与性能存储结构现代 QList 将元素存储在一段连续的相邻内存位置中,类似数组但是与普通数组不同它可以增长和和缩减自动管理内存分配。性能特点基于索引的随机访问速度快O(1)复杂度在列表末尾的追加append操作速度飞快。由于它提供了一些链表的特性在列表中间或开头插入或删除元素时会数组插入、删除更高效内存占用低隐式共享当你复制一个QList时不会立即复制所有元素而是共享相同的数据仅在修改时才进行实际的复制3.基本用法头文件#includeQList实例化QListintlist;添加元素list.append(1);list.append(2);访问元素list[0] list.at(1);删除元素list.removeAt(1);//删除索引 i 处的元素list.removeOne(20);//删除一个值为20的元素list.clear();//清空所有元素ExtraSelection1.概述QTextEdit::ExtraSelection是 Qt 框架中的一个辅助结构体它的主要作用是在 QTextEdit 或 QPlainTextEdit 这类文本编辑器控件中为指定的文本区域提供临时的、附加的高亮显示或特殊格式ExtraSelection 结构体非常简单只包含两个核心成员变量:cursor这是一个 QTextCursor 对象用来精准定位你想要应用格式的文本范围比如连续的几个单词、一整行、甚至是文档中的某个矩形区域format这是一个 QTextCharFormat 对象用来定义你想要应用的具体样式比如文字的颜色、背景色、甚至字体是否加粗等QTextCharFormat函数可在QT帮助中索引2.示例//设置当前行高亮QListQTextEdit::ExtraSelectionextraselections;QTextEdit::ExtraSelection ext;//获取当前行ext.cursorui-textEdit-textCursor();//颜色QBrushqbrush(Qt::lightGray);//设置样式ext.format.setBackground(qbrush);//设置文本背景色ext.format.setProperty(QTextFormat::FullWidthSelection,true);//添加extraselections.append(ext);ui-textEdit-setExtraSelections(extraselections);