qt 实现一个结构体数组,并判重
时间: 2024-12-19 13:21:41 浏览: 7
Qt读取txt文件的内容,保存到数组,并将其显示出来
3星 · 编辑精心推荐
在Qt中,要实现在C++中使用结构体数组并判断元素是否重复,你可以创建一个包含结构体的动态数组(如QVector),同时编写一个辅助函数来检查是否存在相同的元素。这里是一个简单的例子:
首先,定义一个结构体,例如Person:
```cpp
struct Person {
QString name;
int age;
};
```
然后创建一个Person类型的数组并初始化:
```cpp
QVector<Person> people = {
{"Alice", 25},
{"Bob", 30},
{"Charlie", 25} // 这里有一个年龄为25的人
};
```
接下来,我们可以编写一个函数来检查结构体数组中是否存在重复元素(这里是基于名字的重复):
```cpp
bool isDuplicate(const QVector<Person>& array, const Person& personToCheck) {
for (const auto& existingPerson : array) {
if (existingPerson.name == personToCheck.name) {
return true; // 找到了重复的名字
}
}
return false; // 没有找到重复
}
// 要检查特定人的姓名是否重复
bool hasDuplicateName(const Person& newPerson) {
return isDuplicate(people, newPerson);
}
```
如果你想找出所有重复的元素,可以稍微修改isDuplicate函数:
```cpp
void findDuplicates(QVector<Person>& array) {
QVector<Person> duplicates;
for (const auto& existingPerson : array) {
if (array.count(existingPerson) > 1 && !duplicates.contains(existingPerson)) {
duplicates.append(existingPerson);
}
}
// 现在duplicates包含了所有的重复元素
}
```
阅读全文