arrays - 当我们将一个 int 分配给一个由 2 个 int 组成的数组时会发生什么?
问题描述
以下代码通过选举中的每个选民,并允许他们按偏好对候选人进行排名:1、2、3 等。
该代码有效,但我只是想了解将一个 int 分配给int
s,的二维数组时会发生什么preferences[voter][rank] = i
。
当您将单个 int 分配给int
s 的二维数组时会发生什么?
// Keep querying for votes
for (int i = 0; i < voter_count; i++)
{
// Query for each rank
for (int j = 0; j < candidate_count; j++)
{
string name = get_string("Rank %i: ", j + 1);
// Record vote, unless it's invalid
if (!vote(i, j, name))
{
printf("Invalid vote.\n");
return 4;
}
}
printf("\n");
}
//first loop through ranks gets input from the user... this loop through compares the users
//response to each of the candidates, then locks them in as that rank for that voter
bool vote(int voter, int rank, string name)
{
for (int i = 0; i < candidate_count; i++)
{
if(strcmp(name, candidates[i].name) == 0)
{
preferences[voter][rank] = i;
return true;
}
}
return false;
}
解决方案
在您的代码中
preferences[voter][rank] = i;
正如您所提到的,不会将 an 分配int
给“s 的二维数组”。int
这里,preferences[voter][rank]
是数组中的一个元素,类型为int
,并且您正在为其分配一个整数值。
详细地说,一个数组定义为
int arrayofints[10] = {0};
有 10 个元素,类型为int
,由 访问arrayofints[i]
,其中0 <= i <= 9
. 所以像这样的声明
for (int i = 0; i< 10; i++){
arrayofints[i] = i;
}
access arrayofints[0]
, arrayofints[1]
.... 并将值存储i
到该元素中。多维数组也是如此。
推荐阅读
- postgresql - 如何在运行 Centos 7 的两个节点上设置 Postgresql 高可用性
- python - 运行 Flask App 时出现内部服务器错误
- ruby-on-rails - minitest 和 Rspec 在同一个项目上
- python - 如何在包中包含可选模块
- swift - Swift – 如何在不从字符串中删除表情符号的情况下删除特殊字符?
- angular - 生产服务器上 Angular 应用程序的代理配置
- sql-server - 如何将参数化的 sql 事务放入游标中?
- perl - 在文件中剪切并粘贴特定字符串
- azure - 将 Azure 数据工厂管道有条件地部署到另一个资源组
- javascript - ReactJS - 从 innerHtml 函数返回一个组件