c++ - 对数组的引用

标签 c++ arrays reference

这对您来说可能很容易,但我还没有真正了解引用资料。我不明白为什么这行不通。请告诉我正确的样式。

template <typename T>
void shuffle(T (&array)[], size_t len){};

我试着这样调用它:

uint_fast8_t dirBag[4]
Random::shuffle(dirBag, sizeof(dirBag)/sizeof(decltype(dirBag[0])));

错误是:

Error   1   error C2784: 'void Random::shuffle(T (&)[],size_t)' : could not deduce template argument for 'T (&)[]' from 'uint_fast8_t [4]'

最佳答案

尝试:

template <typename T, size_t N>
void shuffle(T (&array)[N])
{
};

此外,在函数体内,您有数组的大小:N。如果您必须将尺寸作为参数传递,我当然认为您可以,但参数将是独立的。


站点注意:根据您的函数名称判断,您可能还会对此感兴趣:

uint_fast8_t dirBag[4];

// ...populate your array...

std::random_shuffle(std::begin(dirBag), std::end(dirBag));

关于c++ - 对数组的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15047979/

相关文章:

C++ 返回 MyClass* 与 MyClass

python - 在 Python 中从数组中提取特定值

rust - 一生可能活得不够长

c++ - 如何创建一个 vector 并以相反的顺序输出

c++ - 无法在运行时打开 Code::Blocks 应用程序中的任何文件

java - 用java编写一个contains方法

java - 哪种是存储关注者和关注者最有效的数据结构

c++ - &符号(&)符号如何在c++中工作?

c++ - 返回对对象构造函数的引用

c++ - 我在程序中对同一图像得到不同的结果