说明网
编程开发

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

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

ANSWER & EXPLANATION

解答与说明

在C++中,我们可以使用标准模板库(STL)中的std::map或std::unordered_map来存储用户信息,并遍历这些数据结构以找到名字相同的两个人。以下是一个示例代码:

#include <iostream>
#include <vector>
#include <map>
#include <string>

struct User {
    std::string name;
    int age;
};

int main() {
    // 创建一个包含用户的向量
    std::vector<User> users = {
        {"Alice", 30},
        {"Bob", 25},
        {"Charlie", 22},
        {"Alice", 28},
        {"David", 35}
    };

    // 使用map来存储每个名字出现的次数
    std::map<std::string, int> 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,打印出所有出现超过一次的名字及其出现次数。

在C++中,我们可以使用标准模板库(STL)中的std::map或std::unordered_map来存储用户信息,并遍历这些数据结构以找到名字相同的两个人。以下是一个示例代码:

#include <iostream>
#include <vector>
#include <map>
#include <string>

struct User {
    std::string name;
    int age;
};

int main() {
    // 创建一个包含用户的向量
    std::vector<User> users = {
        {"Alice", 30},
        {"Bob", 25},
        {"Charlie", 22},
        {"Alice", 28},
        {"David", 35}
    };

    // 使用map来存储每个名字出现的次数
    std::map<std::string, int> 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,打印出所有出现超过一次的名字及其出现次数。

内容由 AI 辅助整理,仅供参考;涉及具体版本、时效或个人情况时,请结合适用条件核实。