QVector容器中有三十个不同的数据,还有一个整形数据,找到连续的大于这个整形数据的值,并且将连续的数据输出到不同的容器中,qt
时间: 2024-04-03 16:34:05 浏览: 199
你可以使用循环遍历QVector容器中的元素,然后判断是否大于给定的整型数据。如果当前元素大于整型数据并且前一个元素小于等于整型数据,那么说明找到了连续的大于整型数据的值。
以下是一个示例代码,演示如何实现这个功能:
```cpp
#include <QVector>
#include <QDebug>
void findContinuousValues(const QVector<int>& data, int target)
{
QVector<QVector<int>> result;
QVector<int> current;
for (int i = 0; i < data.size(); i++) {
if (data[i] > target) {
if (i > 0 && data[i - 1] <= target) {
result.append(current);
current.clear();
}
current.append(data[i]);
}
}
if (!current.isEmpty()) {
result.append(current);
}
// 输出结果
for (const QVector<int>& values : result) {
for (int value : values) {
qDebug() << value;
}
qDebug() << "----";
}
}
int main()
{
QVector<int> data = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30};
int target = 10;
findContinuousValues(data, target);
return 0;
}
```
以上代码中,我们定义了一个名为`findContinuousValues`的函数,它接受一个QVector容器和一个整型数据作为参数。函数内部使用两个容器,`result`用于存储连续的大于整型数据的值,`current`用于临时存储当前连续的值。我们遍历QVector容器中的元素,如果当前元素大于整型数据并且前一个元素小于等于整型数据,就将当前元素添加到`current`容器中,并将`current`容器添加到`result`容器中。最后,我们输出`result`容器中的结果。
在上述示例中,我们假设QVector容器中的数据为1到30,整型数据为10。你可以根据实际情况修改数据和整型数据的值。输出的结果将按照连续的大于整型数据的值分组,并以`----`分隔不同的组。
阅读全文