在 C++ 中,当数组传递给函数时,数组会退化为指针,因此在函数中使用 sizeof 来获取数组的长度是不准确的。在这种情况下,可以通过传递数组的长度作为额外的参数来解决。
如果你不想显式传递数组长度,你可以考虑使用 C++ 中的 std::array 或者 std::vector 。这两者都包含了一个成员函数 size(),可以方便地获取数组的长度。
下面是一个使用` std::array` 的例子:
```
#include <iostream>
#include <array>
void f(std::array<int, 5>& nums)
{
std::cout << nums.size() << std::endl;
}
int main()
{
std::array<int, 5> nums = {1, 2, 3, 4, 5};
f(nums);
return 0;
}
```
或者使用 `std::vector:`
```
#include <iostream>
#include <vector>
void f(std::vector<int>& nums)
{
std::cout << nums.size() << std::endl;
}
int main()
{
std::vector<int> nums = {1, 2, 3, 4, 5};
f(nums);
return 0;
}
```
这样就可以方便地获取数组的长度而不必显式传递长度参数。 |