c++ - C++如何获取数组的长度?

标签 c++

我试图为此编写自己的函数,但我得到了错误的结果

#include <iostream>

using namespace std;

template<typename T>
int array_length(T v[]) {
    return (sizeof v)/sizeof(T);
}

int main() {
    int v[] = {1, 2, 3, 4};
    cout << array_length(v) << endl;
    return 0;
}

最佳答案

像这样:

#include <cstddef> // for size_t

template< typename T, std::size_t N >
std::size_t length( const T (&)[N] )
{
  return N;
}

用法

int data[100];
std::cout << length(data) << "\n";

关于c++ - C++如何获取数组的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13542640/

相关文章:

c++ - 想在成员函数c++中将对象作为参数传递

c++ - ffmpeg图像到视频帧长度

c++ - 运算符重载中变量的数据类型和范围应该是什么?

c++ - 无法插入到 std::map (G++)

python - 如何使用 python 将指针输入发送到 C++ 程序?

C++ 如何从父方法调用子方法

c++ - 如何声明一个以函数为参数的函数?

c++ - 包含 numpy/arryobject.h 时的警告消息

c++ - 将执行从一个线程转移到另一个线程以实现任务并行性和 future 调用

c++ - 成员 "extra qualification ‘student::’ [-fpermissive] 上的错误 ‘student’ “