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
!如果还有其他问题,请随时告诉我! 😊