c++ - 使用函数传递的最大元素初始化数组

标签 c++ arrays

我在学校工作,我应该编写一个函数来接受为公司工作的员 worker 数并将值返回给 main。

然后我将编写一个由 main 调用的函数,该函数接受为公司工作的员 worker 数。然后我应该询问每个员工在该职能中错过的天数,并返回错过的总天数。

我在第二部分遇到了问题。我正在尝试创建一个数组,其中员工数作为元素的最大数量,但我一直收到关于我放在括号之间的变量不是常量的错误,即使它是常量!

我对数组有点迷糊,这是一门进修类(class)。如果我可以创建一个数组,我会使用 for 循环遍历每个元素并存储每个元素中错过的天数。

感谢您的帮助, 亚伦

#include <iostream>
using namespace std;

int noOfEmployees();
int daysAbsent(int);

int main(){
    int employees;

    employees = noOfEmployees();
    daysAbsent(employees);

    system("pause");
    return 0;
}

int noOfEmployees(){
    int employees;
    cout<<"Please enter number of employees/n";
    cin>>employees;
    return employees;
}

int daysAbsent(int employees){
    const int max = employees;
    int daysMissed;
    int workers [max];
}

最佳答案

[…] I keep getting an error about the variable I put in between the brackets not being a constant even though it is!

它必须是一个编译时常量;也就是说,编译器需要能够默默地替换 int workers [max]用类似 int workers [10] 的东西.在您的设计中,它取决于函数的参数,直到运行时才知道。

有几种不同的方法来处理这个问题,但最好的可能是使用 std::vector<int>而不是 int[] :

std::vector<int> workers;

(确保在程序的顶部是 #include <vector>)。

关于c++ - 使用函数传递的最大元素初始化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8992633/

相关文章:

c++ - Vulkan,你可以直接公开扩展吗?

c++ - OnvifClientPTZ onvif c++ 无法获取配置选项

c++ - 读取和写入文件 C++

java - 将随机值存储到数组中

java - 搜索前 3 个数字的最快和最有效的方法?

c# - 如何通过 LINQ 在二维数组中进行搜索?[version2]

c++ - 一个简单的非锁定读取并发映射的算法?

c++ - 使用派生类型的C++ Mixin

javascript - 从颜色渐变数组构建对象

javascript - 从Reduce方法获取数组