QVector 判断里边的元素是否相同函数
时间: 2024-01-02 16:01:43 浏览: 174
比较两个数组元素是否相同
5星 · 资源好评率100%
在 Qt 中,QVector 容器本身没有提供判断容器中元素是否全部相同的函数,但是可以通过自定义函数来实现。具体实现可以参考以下代码示例:
```cpp
template<typename T>
bool isAllElementsEqual(const QVector<T>& v) {
if (v.isEmpty()) {
// 如果容器为空,则认为容器中元素全部相同
return true;
}
// 获取容器中的第一个元素
T first = v.first();
// 遍历容器,比较每个元素与第一个元素是否相同
for (int i = 1; i < v.size(); ++i) {
if (v[i] != first) {
// 如果有元素与第一个元素不相同,则说明容器中元素不全部相同
return false;
}
}
// 如果没有元素与第一个元素不相同,则说明容器中元素全部相同
return true;
}
```
在上述代码中,我们定义了一个模板函数 `isAllElementsEqual`,该函数接受一个 QVector 容器作为参数,并返回一个 bool 值,表示容器中的元素是否全部相同。函数首先判断容器是否为空,如果容器为空,则认为容器中元素全部相同。否则,获取容器中的第一个元素,然后遍历容器,比较每个元素与第一个元素是否相同。如果有元素与第一个元素不相同,则说明容器中元素不全部相同,返回 false。如果没有元素与第一个元素不相同,则说明容器中元素全部相同,返回 true。
使用该函数的示例如下:
```cpp
QVector<int> v1{1, 1, 1, 1, 1};
QVector<int> v2{1, 2, 3, 4, 5};
qDebug() << "v1 is all elements equal? " << isAllElementsEqual(v1); // 输出 true
qDebug() << "v2 is all elements equal? " << isAllElementsEqual(v2); // 输出 false
```
在上述示例中,我们分别定义了两个 QVector 容器 v1 和 v2,并分别调用 `isAllElementsEqual` 函数来判断它们中的元素是否全部相同。根据实际数据,v1 中的元素全部相同,v2 中的元素不全部相同,所以输出结果分别为 true 和 false。
阅读全文