声明一个在头文件中接受 std:array 的函数

Declare a function that accepts std:array in a header file

提问人:Sameer Ahuja 提问时间:6/7/2018 最后编辑:Sameer Ahuja 更新时间:6/7/2018 访问量:254

问:

我只是在玩 std::array。想要将整数数组传递给一个函数,这可以通过以下方式轻松完成

void arrayByValue(array<int, 5> arr);  

上面可以像这样调用

array<int, 5> aInt = {100,92,-1,122,112};  
arrayByValue(aInt);  

只要它在同一个 .cpp 文件中,这就可以很好地工作。 我是 问题是如何将其放在 .h 文件中,在 .cpp 文件中实现该方法,然后在另一个文件中调用它 假设 main。我收到错误说
'array': undeclared identifier
type 'int' expected

请提出可能的问题。请注意,如果我在调用函数的同一文件中声明该函数,则此功能非常有效

C++11 按值传递 stdarray

评论


答:

1赞 marcinj 6/7/2018 #1

您需要在 .h 文件的顶部添加:

#include <array>

也使用 - 是一个坏习惯std::arrayusing namespace std;

评论

0赞 Sameer Ahuja 6/7/2018
我发现了问题。只是好奇为什么使用命名空间 std;不好吗?
0赞 marcinj 6/7/2018
@SameerAhuja在这里看到 stackoverflow.com/questions/1452721/......
0赞 Sameer Ahuja 6/7/2018
明白了。谢谢。
1赞 Sameer Ahuja 6/7/2018 #2

对于给您带来的不便,我们深表歉意。我忘了使用
命名空间 std;
在 .h 文件中。使用上面的行或使用 std::array
解决了这个问题