C++;将 std::array 作为函数参数传递

C++; Pass std::array as a Function Parameter

我知道这是一个常见问题,但我如何将 std::array 作为函数参数传递?我在这里查看了其他问题的答案,询问同样的事情,我发现最好的“解决方案”是使用模板将 size_t 设置为 SIZE 这样的关键字。我试过了,但它仍然给我两个编译时错误:

Error   C2065   'SIZE': undeclared identifier
Error   C2975   '_Size': invalid template argument for 'std::array', expected compile-time constant expression

两个错误都在我的 void 函数定义所在的行。

据我所知,我完全按照解决方案的输入方式进行了此操作。我知道我可以通过 std::vector,但我很固执,想学习这个。

这是我的相关代码:

#include <iostream>
#include <array>
using namespace std;

template<size_t SIZE>
void QuickSort(array<unsigned, SIZE>& arrayName);

int main()
{
    // main function.
}

void QuickSort(array<unsigned, SIZE>& arrayName)
{
    // whatever the function does.
}

如果能帮助我找出我做错了什么,我将不胜感激。

EDIT: 我忘记把第二个函数参数拿出来了。我这样做了,但仍然是同样的问题。

您的函数定义仍然需要模板参数,因为编译器无法知道 SIZE 是什么

template<size_t SIZE>
// ^^^^^^^^^^^^^^^^^^
void QuickSort(array<unsigned, SIZE>& arrayName)
{
/// whatever the function does.
}