蓬莱建网站,房地产市场信息系统网站,三端互通的传奇手游打金,什么语言做网站好参考原文#xff1a;https://www.cnblogs.com/ybqjymy/p/17996789
在计算机编程的世界中#xff0c;数据结构是一个核心概念#xff0c;它为我们提供了有效地组织和存储数据的方法。在众多数据结构中#xff0c;向量#xff08;Vector#xff09;作为一种动态数组#…参考原文https://www.cnblogs.com/ybqjymy/p/17996789
在计算机编程的世界中数据结构是一个核心概念它为我们提供了有效地组织和存储数据的方法。在众多数据结构中向量Vector作为一种动态数组因其灵活性和高效性受到了广泛的关注。特别是在使用 Qt 框架进行 C 编程时QVector 成为了程序员们的得力工具。 QVector 是 Qt 容器类库中的一个重要组成部分它提供了类似于 C 标准库中的 std::vector 的功能但同时拥有 Qt 独特的优势。QVector 是一个动态数组可以容纳任意数量的元素支持在末尾添加、插入和删除元素。与其他容器相比QVector 在随机访问元素时具有出色的性能同时在尾部添加和删除元素时仍能保持较高的效率。 在这篇文章中我们将深入探讨 QVector 的重要性和用法包括基本操作、性能分析以及与其他容器的对比。我们的目标是帮助读者充分了解 QVector 的优势和局限性从而在实际项目中做出明智的选择。无论您是 Qt 的新手还是经验丰富的开发者相信这篇文章都能为您带来一些有用的见解。现在就让我们开始这段探索之旅吧
QVector的常用接口 QVector 是 Qt 框架中一个用于存储数据的容器类它可以存储各种类型的数据如整数、浮点数、自定义类等。QVector 类提供了多种用于操作数据的接口方法。以下是一些常用接口的详细介绍
构造函数
QVector()创建一个空的 QVector 容器。QVector(int size)创建一个指定大小的 QVector 容器。QVector(int size, const T value)创建一个指定大小的 QVector 容器并用给定值填充。QVector(const QVectorT other)复制构造函数用另一个 QVector 容器创建一个新的 QVector 容器。
元素访问
T operator[](int i)通过索引访问元素返回指定索引处的元素的引用。const T operator[](int i) const以只读方式通过索引访问元素。T at(int i)通过索引访问元素会检查索引是否越界。T front()返回容器中的第一个元素的引用。const T front() const以只读方式返回容器中的第一个元素。T back()返回容器中的最后一个元素的引用。const T back() const以只读方式返回容器中的最后一个元素。
容量和大小
bool isEmpty() const判断容器是否为空。int size() const获取容器中元素的数量。int capacity() const获取容器的容量。void reserve(int size)预分配指定数量的元素空间提高性能。void squeeze()释放未使用的容量将容量调整为实际元素数量。
修改容器
void clear()清空容器中的所有元素。void resize(int size)调整容器的大小。void fill(const T value, int size -1)用给定值填充容器可以指定填充个数。void append(const T value)在容器末尾添加一个元素。void prepend(const T value)在容器开头添加一个元素。void insert(int i, const T value)在指定位置插入一个元素。void replace(int i, const T value)替换指定位置的元素。void remove(int i)移除指定位置的元素。void remove(int i, int count)从指定位置开始移除指定数量的元素。void removeAll(const T value)移除容器中所有等于给定值的元素。bool removeOne(const T value)移除容器中第一个等于给定值的元素。
查找
int indexOf(const T value, int from 0) const从指定位置开始查找给定值的元素返回第一个找到的元素的索引。int lastIndexOf(const T value, int from -1) const从指定位置开始向前查找给定值的元素返回第一个找到的元素的索引。bool contains(const T value) const判断容器中是否包含给定值的元素。int count(const T value) const计算容器中给定值的元素的个数。
排序
void sort(Qt::SortOrder order Qt::AscendingOrder)对容器中的元素进行排序可以指定升序或降序。void stableSort(Qt::SortOrder order Qt::AscendingOrder)对容器中的元素进行稳定排序可以指定升序或降序。
迭代器
iterator begin()返回容器的起始迭代器。const_iterator begin() const返回容器的只读起始迭代器。iterator end()返回容器的结束迭代器。const_iterator end() const返回容器的只读结束迭代器。
比较操作符
bool operator(const QVectorT other) const判断两个 QVector 容器是否相等元素数量和值都相等时为 true。bool operator!(const QVectorT other) const判断两个 QVector 容器是否不相等。
其他功能
QVectorT operator(const QVectorT other)赋值操作符将一个 QVector 容器赋值给另一个。QVectorT mid(int pos, int length -1) const获取容器中指定范围的元素返回一个新的 QVector 容器。void swap(QVectorT other)交换两个 QVector 容器的内容。 以上是 QVector 的常用接口的详细介绍。使用 QVector 时您可以根据实际需求选择合适的接口进行数据存储和操作。 下面是一个简单的示例介绍了 QVector 的一些常用操作 1 #include QVector2 #include QDebug3 4 int main()5 {6 // 创建一个 QVector 容器并添加元素7 QVectorint vec;8 vec.append(3);9 vec.append(1);
10 vec.append(4);
11 vec.append(2);
12
13 qDebug() Original QVector:;
14 for (int i 0; i vec.size(); i) {
15 qDebug() vec.at(i);
16 }
17
18 // 使用排序功能
19 vec.sort(Qt::AscendingOrder);
20 qDebug() Sorted QVector:;
21 for (int i 0; i vec.size(); i) {
22 qDebug() vec.at(i);
23 }
24
25 // 插入元素
26 vec.insert(1, 8); // 在索引 1 位置插入值 8
27 qDebug() QVector after inserting 8 at index 1:;
28 for (int i 0; i vec.size(); i) {
29 qDebug() vec.at(i);
30 }
31
32 // 删除元素
33 vec.remove(2); // 删除索引 2 处的元素
34 qDebug() QVector after removing the element at index 2:;
35 for (int i 0; i vec.size(); i) {
36 qDebug() vec.at(i);
37 }
38
39 // 查找元素
40 int index vec.indexOf(4);
41 if (index ! -1) {
42 qDebug() Element 4 found at index: index;
43 } else {
44 qDebug() Element 4 not found;
45 }
46
47 return 0;
48 }
在这个示例中我们展示了如何创建 QVector 容器、添加元素、排序、插入元素、删除元素以及查找元素。根据实际需求您可以使用 QVector 提供的其他接口进行更多操作。