如何在C++中遍历所有用户并找到名字相同的两个人?

本问题旨在询问如何在C++程序中实现遍历用户列表,并找到具有相同名字的两个用户。这里假设用户列表是一个包含用户对象的容器,用户对象中包含姓名(name)属性。

2 个回答

卢彬

在C++中,我们可以使用标准模板库(STL)中的`std::map`或`std::unordered_map`来存储用户信息,并遍历这些数据结构以找到名字相同的两个人。以下是一个示例代码: ```cpp #include #include #include #include struct User { std::string name; int age; }; int main() { // 创建一个包含用户的向量 std::vector users = { {"Alice", 30}, {"Bob", 25}, {"Charlie", 22}, {"Alice", 28}, {"David", 35} }; // 使用map来存储每个名字出现的次数 std::map nameCount; // 遍历用户列表并统计每个名字的出现次数 for (const auto& user : users) { nameCount[user.name]++; } // 遍历map并打印出所有出现超过一次的名字 for (const auto& entry : nameCount) { if (entry.second > 1) { std::cout << "Name: " << entry.first << " appears " << entry.second << " times." << std::endl; } } return 0; } ``` 在这个示例中,我们首先定义了一个`User`结构体,用于存储用户的名字和年龄。然后,我们创建了一个包含多个用户的向量。接下来,我们使用一个`std::map`来统计每个名字出现的次数。最后,我们遍历这个map,打印出所有出现超过一次的名字及其出现次数。

chenhong

在C++中,我们可以使用标准模板库(STL)中的`std::map`或`std::unordered_map`来存储用户信息,并遍历这些数据结构以找到名字相同的两个人。以下是一个示例代码: ```cpp #include #include #include #include struct User { std::string name; int age; }; int main() { // 创建一个包含用户的向量 std::vector users = { {"Alice", 30}, {"Bob", 25}, {"Charlie", 22}, {"Alice", 28}, {"David", 35} }; // 使用map来存储每个名字出现的次数 std::map nameCount; // 遍历用户列表并统计每个名字的出现次数 for (const auto& user : users) { nameCount[user.name]++; } // 遍历map并打印出所有出现超过一次的名字 for (const auto& entry : nameCount) { if (entry.second > 1) { std::cout << "Name: " << entry.first << " appears " << entry.second << " times." << std::endl; } } return 0; } ``` 在这个示例中,我们首先定义了一个`User`结构体,用于存储用户的名字和年龄。然后,我们创建了一个包含多个用户的向量。接下来,我们使用一个`std::map`来统计每个名字出现的次数。最后,我们遍历这个map,打印出所有出现超过一次的名字及其出现次数。