c++ - 如何将数组元素与其他变量“连接”?
问题描述
所以,我得到了老师给我的这个项目,而且我很新,所以我遇到了一个小问题。基本上,我需要输入一些城市和他们的人口,我需要按照从人口最多到人口最少的顺序输出它们。我使用结构来存储有关每个城市的信息,现在我不知道如何将人口“连接”到每个城市,如果您知道我的意思的话。谢谢!
这就是它的样子,对于不理解问题的人,我得到了城市人口并将其从高到低排序,现在我想显示城市名称及其旁边的人口但我不知道现在如何将它们加在一起。
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 << " ";
}
}
解决方案
您不连接两个变量。当它们属于同一概念时,您将它们组合在一起。
在这种特定情况下,我建议您city
通过创建 a来为 a 创建一个抽象struct
,并指导它如何仅根据(在这种情况下)人口将自己与其他城市进行比较。
您可以通过实施operator<
struct city{
unsigned population
bool operator<(const city& c1){
return this.population < c1.population;
}
};
然后,您可以将元素添加到数组中,甚至更好的 astd::vector
并使用std::sort
.
既然这听起来像一个家庭作业,我会把剩下的留给你。您应该可以从这里自行继续。
推荐阅读
- c++ - LNK2019:函数“private:int __cdecl StartProcess::ComInit(void)”中引用的未解析外部符号 __imp_GetComName
- python - AttributeError:“成员”对象没有属性“服务器”
- node.js - 如何找出 NPX 运行的是哪个文件?
- rest - 使用 yammer search rest api 根据组名或 tagID 搜索 yammer 数据
- systemtap - 解决systemtap(stap)“Spawn错误(2): No such file or directory”
- flutter - 当我在 Flutter 中单击外部时,如何删除 overlayEntry?
- spring - 使用 SpringBoot 在 H2 数据库中创建表的问题
- php - 如何在 PHP 中使用正则表达式来查找被空格包围的数字?
- apache-spark - Spark 限制每个服务的执行者数量
- octave - 用某种颜色绘制实心圆