C ++:将字符串数组传递给函数而不使用向量

时间:2014-08-06 11:46:15

标签: c++ function pass-by-reference arrays

因此,对于我的课堂作业,我必须完成这个成绩簿计划。我正在努力的部分是弄清楚如何将字符串数组从一个函数传递到另一个函数,这样后一个函数可以对存储在字符串数组中的数据执行计算。好吧,进一步缩小到更大的图片,字符串数组(用于学生姓名)平行于双数组(用于分数),接收数组的函数必须找到最高和最低,计算平均值,并打印输出到屏幕和文件。我得到了最后一点,但我无法弄清楚将数组引用到函数而不使用向量的正确语法!

重要提示:如果您以某种方式错过了它,我们不允许使用向量进行此分配。

所以概要是:

//blahblahblah, #includes and other starting things

int myFunc(//prototype-what the heck goes here?)    

int main()
{
    //arrays declared
    string names[MAX_NUM];
    double scores[MAX_NUM];
    //...other stuff main does, including calling myFunc...
}

int myFunc( //header-what the heck goes here?)
{
    //Code here to find highest, lowest, and mean scores from data in scores[]
}

显然每个人都说“这里到底是什么?”位置将与另一个位置相关。但我不知道如何使它全部工作,我能找到的每个答案只是说使用矢量。我们尚未涵盖哪些因此无法使用...请帮助吗?

3 个答案:

答案 0 :(得分:3)

template<std::size_t size>
int myFunc(std::string (&names)[size]);

int myFunc(std::string *names, std::size_t numberOfNames);

int myFunc(std::string *names); //implicitly assume names points to MAX_NUM strings

答案 1 :(得分:1)

//blahblahblah, #includes and other starting things

int myFunc(string names[], double scores[], int elementCount);

int main()
{
   //arrays declared
   string names[MAX_NUM];
   double scores[MAX_NUM];
   //...other stuff main does, including calling myFunc...
   myFunc(names, scores, elementCount);
}

int myFunc(string names[], double scores[], int elementCount)
{
   //Code here to find highest, lowest, and mean scores from data in scores[]
}

答案 2 :(得分:0)

我可能会用

myFunc(std::string* names, double* scores, std::size_t n_students) { /*...*/ }

或者,使用no-vectors-policy过度精确,你可以使用std::list<std::pair<std::string, double>>或类似的东西......