QVector成员
以下是关于 Qt 中 QVector 成员函数的详细表格,包含每个函数的含义、用法示例,并修正了大小写错误:
| 函数名称 | 含义 | 用法示例 |
|---|---|---|
| append() | 向容器末尾添加一个元素 | QVector<int> vec; vec.append(5); |
| at() | 返回指定索引处的元素(不检查越界) | int value = vec.at(0); |
| back() | 返回容器最后一个元素 | int last = vec.back(); |
| begin() | 返回指向容器第一个元素的迭代器 | auto it = vec.begin(); |
| capacity() | 返回当前容器的容量(即可以容纳的元素数量,无需重新分配内存) | int cap = vec.capacity(); |
| cbegin() | 返回指向容器第一个元素的常量迭代器 | auto it = vec.cbegin(); |
| cend() | 返回指向容器末尾的常量迭代器 | auto it = vec.cend(); |
| clear() | 清空容器,移除所有元素 | vec.clear(); |
| constBegin() | 返回指向容器第一个元素的常量迭代器(同 cbegin()) | auto it = vec.constBegin(); |
| constData() | 返回指向容器数据的常量指针 | const int* data = vec.constData(); |
| constEnd() | 返回指向容器末尾的常量迭代器(同 cend()) | auto it = vec.constEnd(); |
| constFirst() | 返回容器的第一个元素(常量版本) | int first = vec.constFirst(); |
| constLast() | 返回容器的最后一个元素(常量版本) | int last = vec.constLast(); |
| contains() | 检查容器是否包含指定值 | bool hasValue = vec.contains(5); |
| copyConstruct() | 复制构造函数(内部实现) | 内部使用,通常不需要直接调用 |
| count() | 返回容器中指定值的出现次数 | int count = vec.count(5); |
| crbegin() | 返回指向容器末尾的反向常量迭代器 | auto it = vec.crbegin(); |
| crend() | 返回指向容器开头的反向常量迭代器 | auto it = vec.crend(); |
| data() | 返回指向容器数据的指针 | int* data = vec.data(); |
| defaultConstruct() | 默认构造函数(内部实现) | 内部使用,通常不需要直接调用 |
| destruct() | 析构函数(内部实现) | 内部使用,通常不需要直接调用 |
| detach() | 从共享数据中分离容器,确保容器拥有独立的数据副本 | vec.detach(); |
| empty() | 检查容器是否为空(同 isEmpty()) | bool isEmpty = vec.empty(); |
| end() | 返回指向容器末尾的迭代器 | auto it = vec.end(); |
| endsWith() | 检查容器是否以指定值结尾 | bool ends = vec.endsWith(5); |
| erase() | 从容器中移除指定位置的元素 | vec.erase(vec.begin() + 2); |
| fill() | 用指定值填充容器 | vec.fill(0); |
| first() | 返回容器的第一个元素 | int first = vec.first(); |
| freeData() | 释放容器的数据(内部实现) | 内部使用,通常不需要直接调用 |
| fromList() | 从 QList 转换为 QVector | QVector<int> vec = QVector<int>::fromList(list); |
| fromStdVector() | 从 std::vector 转换为 QVector | QVector<int> vec = QVector<int>::fromStdVector(stdVec); |
| front() | 返回容器的第一个元素(同 first()) | int first = vec.front(); |
| indexOf() | 返回指定值第一次出现的索引 | int index = vec.indexOf(5); |
| insert() | 在指定位置插入一个元素 | vec.insert(2, 10); |
| isDetached() | 检查容器是否与共享数据分离 | bool isDetached = vec.isDetached(); |
| isEmpty() | 检查容器是否为空 | bool isEmpty = vec.isEmpty(); |
| isSharedWith() | 检查容器是否与另一个容器共享数据 | bool shared = vec.isSharedWith(otherVec); |
| isValidIterator() | 检查迭代器是否有效 | bool valid = QVector<int>::isValidIterator(it); |
| last() | 返回容器的最后一个元素 | int last = vec.last(); |
| lastIndex() | 返回指定值最后一次出现的索引 | int index = vec.lastIndexOf(5); |
| length() | 返回容器的长度(同 size()) | int length = vec.length(); |
| mid() | 返回从指定位置开始的子向量 | QVector<int> subVec = vec.mid(2, 3); |
| move() | 移动构造函数(内部实现) | 内部使用,通常不需要直接调用 |
| operator! | 检查容器是否为空 | if (!vec) { ... } |
| operator+= | 在容器末尾添加一个元素 | vec += 10; |
| operator+ | 连接两个 QVector | QVector<int> newVec = vec1 + vec2; |
| operator<< | 在容器末尾添加一个元素(同 append()) | vec << 10; |
| operator== | 比较两个 QVector 是否相等 | bool equal = (vec1 == vec2); |
| operator= | 赋值操作符 | vec1 = vec2; |
| operator[] | 返回指定索引处的元素 | int value = vec[0]; |
| popBack() | 移除容器最后一个元素 | vec.popBack(); |
| popFront() | 移除容器第一个元素 | vec.popFront(); |
| prepend() | 在容器开头插入一个元素 | vec.prepend(10); |
| pushBack() | 在容器末尾添加一个元素(同 append()) | vec.pushBack(10); |
| pushFront() | 在容器开头插入一个元素(同 prepend()) | vec.pushFront(10); |
| rbegin() | 返回指向容器末尾的反向迭代器 | auto it = vec.rbegin(); |
| reallocData() | 重新分配容器数据(内部实现) | 内部使用,通常不需要直接调用 |
| remove() | 移除指定位置的元素 | vec.remove(2); |
| removeAll() | 移除所有指定值的元素 | vec.removeAll(5); |
| removeAt() | 移除指定位置的元素 | vec.removeAt(2); |
| removeFirst() | 移除容器第一个元素 | vec.removeFirst(); |
| removeLast() | 移除容器最后一个元素 | vec.removeLast(); |
| removeOne() | 移除一个指定值的元素 | vec.removeOne(5); |
| rend() | 返回指向容器开头的反向迭代器 | auto it = vec.rend(); |
| replace() | 替换指定位置的元素 | vec.replace(2, 10); |
| reserve() | 预分配内存以提高性能 | vec.reserve(100); |
| resize() | 调整容器大小 | vec.resize(10); |
| setSharable() | 设置容器是否可共享 | vec.setSharable(true); |
| shrinkToFit() | 释放多余的内存 | vec.shrinkToFit(); |
| size() | 返回容器的大小 | int size = vec.size(); |
| squeeze() | 释放多余的内存(同 shrinkToFit()) | vec.squeeze(); |
| startsWith() | 检查容器是否以指定值开头 | bool starts = vec.startsWith(5); |
| swap() | 交换两个 QVector 的内容 | vec1.swap(vec2); |
| takeAt() | 移除并返回指定位置的元素 | int value = vec.takeAt(2); |
| takeFirst() | 移除并返回容器第一个元素 | int value = vec.takeFirst(); |
| takeLast() | 移除并返回容器最后一个元素 | int value = vec.takeLast(); |
| toList() | 将 QVector 转换为 QList | QList<int> list = vec.toList(); |
| toStdVector() | 将 QVector 转换为 std::vector | std::vector<int> stdVec = vec.toStdVector(); |
| value() | 返回指定索引处的元素(安全版本,越界时返回默认值) | int value = vec.value(0, -1); |
| ~QVector() | 析构函数 | 内部使用,通常不需要直接调用 |
修正的大小写问题:
counta→count()pop_front→popFront()shrink to fit→shrinkToFit()setsharable→setSharable()takeLast/buidcus→takeLast()tostdvector→toStdVector()
希望这个表格能帮助你更好地理解和使用 QVector!如果还有其他问题,请随时告诉我! 😊
