c++用STL的容器map和算法find_if实现名表表示和查找功能。
时间: 2023-11-22 10:56:45 浏览: 56
C++利用map实现并查集
首先,我们可以定义一个结构体来表示一个人的信息,包括姓名和年龄:
```c++
struct Person {
string name;
int age;
};
```
接下来,我们可以使用`std::map`容器来创建一个名表,其中键(key)为人的姓名,值(value)为人的信息:
```c++
std::map<string, Person> nameList;
```
接下来,我们可以实现一个函数,用于添加人员信息到名表中:
```c++
void addPerson(string name, int age) {
Person p;
p.name = name;
p.age = age;
nameList[name] = p;
}
```
接下来,我们可以实现一个函数,用于查找名表中是否存在某个人的信息:
```c++
bool findPerson(string name) {
auto it = nameList.find(name);
if (it != nameList.end()) {
cout << "Name: " << it->first << ", Age: " << it->second.age << endl;
return true;
}
return false;
}
```
在这个函数中,我们使用`std::map`容器的`find()`函数来查找指定键对应的值,如果找到了,就输出该人的姓名和年龄,并返回`true`;否则返回`false`。
接下来,我们可以在主函数中调用上述函数,来添加人员信息和查找人员信息:
```c++
int main() {
addPerson("Alice", 25);
addPerson("Bob", 30);
addPerson("Charlie", 35);
findPerson("Bob");
findPerson("Dave");
return 0;
}
```
输出结果为:
```
Name: Bob, Age: 30
```
```
```
阅读全文