如何在 c++ 中获取数组的长度

How to get the length of an array in c++?

本文关键字:数组 获取 c++      更新时间:2023-10-16

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

#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";

长度由数组提供。所以试试这个:

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

std::size_t 位于标题 <cstddef> 中。它是无符号整数类型。