结构体可以使用lower_bound码
时间: 2023-11-12 12:59:53 浏览: 101
查找结构体向量变量(Vectors, structs and find)
结构体是一种自定义数据类型,可以包含多个不同类型的数据成员。lower_bound是STL中的一个函数,用于在有序序列中查找第一个大于等于给定值的元素的位置。结构体和lower_bound在使用上没有直接的联系,但是可以在结构体中定义比较函数,然后使用lower_bound进行查找。
例如,我们定义一个结构体Person,包含姓名和年龄两个数据成员,并且定义一个比较函数cmp,按照年龄从小到大排序:
```cpp
struct Person {
string name;
int age;
bool operator<(const Person& other) const {
return age < other.age;
}
};
bool cmp(const Person& a, const Person& b) {
return a.age < b.age;
}
```
然后我们可以使用lower_bound在一个Person数组中查找年龄大于等于18岁的第一个人:
```cpp
vector<Person> people = {{"Alice", 16}, {"Bob", 20}, {"Charlie", 18}};
auto it = lower_bound(people.begin(), people.end(), Person{"", 18}, cmp);
if (it != people.end()) {
cout << it->name << endl; // 输出 "Charlie"
}
```
阅读全文