首页 > 解决方案 > 如何将数组元素与其他变量“连接”?

问题描述

所以,我得到了老师给我的这个项目,而且我很新,所以我遇到了一个小问题。基本上,我需要输入一些城市和他们的人口,我需要按照从人口最多到人口最少的顺序输出它们。我使用结构来存储有关每个城市的信息,现在我不知道如何将人口“连接”到每个城市,如果您知道我的意思的话。谢谢!

这就是它的样子,对于不理解问题的人,我得到了城市人口并将其从高到低排序,现在我想显示城市名称及其旁边的人口但我不知道现在如何将它们加在一起。

struct city
{
    string name;
    int population;
}cityVar[10];

int main()
{
    // Input
    for (int i = 0; i < 5; i++)
    {
        cin >> cityVar[i].name;
        cin >> cityVar[i].population;
    }

    int i, j;
    int temp;
    for (i = 0; i < 5; i++)
    {
        for (j = i + 1; j < 5; j++)
        {
            if (cityVar[i].population < cityVar[j].population)
            {
                temp = cityVar[i].population;
                cityVar[i].population = cityVar[j].population;
                cityVar[j].population = temp;
            }
        }
    }
    for (i = 0; i < 5; i++)
    {
        cout << cityVar[i].population << " ";
    }
}

标签: c++

解决方案


您不连接两个变量。当它们属于同一概念时,您将它们组合在一起。

在这种特定情况下,我建议您city通过创建 a来为 a 创建一个抽象struct,并指导它如何仅根据(在这种情况下)人口将自己与其他城市进行比较。

您可以通过实施operator<

struct city{
    unsigned population

    bool operator<(const city& c1){
         return this.population < c1.population;
     }
};

然后,您可以将元素添加到数组中,甚至更好的 astd::vector并使用std::sort.

既然这听起来像一个家庭作业,我会把剩下的留给你。您应该可以从这里自行继续。


推荐阅读