【发布时间】:2019-11-07 09:50:19
【问题描述】:
int r, i, arrayMinimumIndex(auto a)
{
for (int c : a)
c > a[r] ?: r = i, ++i;
return r;
}
我正在尝试运行此代码,但它显示:
[Error] a function-definition is not allowed here before '{' token
[Error] 'arrayMinimumIndex' was not declared in this scope
谁能解释为什么它会失败并修复它?提前致谢
【问题讨论】:
-
你希望语法
int r, i, arrayMinimumIndex做什么? -
注意
std::min_element存在。 -
您收到这些错误是因为这不是有效的 cpp 语法。
-
函数声明的正确语法如下:
return_type function_name(argument_list){}。那里没有逗号(()中的参数列表除外)。如果你试图返回多个元素,这是不可能的——你必须将它们组合在一个结构中或使用std::pair/std::tuple。你可能想得到a good C++ book 学习 -
您不要在返回类型后添加任何变量名。只有函数名。答案中显示了声明函数的正确方法,但如果您的书/教程/课程没有解释这一点,您真的应该考虑获得更好的方法。