文字列の配列の長さを取得します。

1.  算術式

#include <iostream>
 
int  main() {
     int  arr[4];
     std::cout <<  sizeof ( arr ) /  sizeof ( arr[0] ) << std::endl;  // 输出4
}

若しくは

#include <iostream>
 
int  main() {
     int  arr[4];
     std::cout <<  sizeof ( arr ) /  sizeof ( *arr ) << std::endl;   // 输出4
}

2.  関数テンプレートのパラメータが自動的に推論します:

#include <iostream>
 
template  < typename  T,  size_t  N>
inline  size_t  Count(  T ( & arr )[N] ) {
     return  N;
}
 
int  main() {
     int  arr[4];
     std::cout << Count( arr ) << std::endl;   // 输出4
}

3.標準C ++テンプレートライブラリ:

#include <type_traits>  // 注意包含此头文件.
#include <iostream>
 
int  main() {
     int  arr[4];
     std::cout << std::extent< decltype ( arr ), 0>::value << std::endl;  // 输出4
}

前記自動型推論のテンプレートは、文献:

include <iostream>
template  < typename  T>
class  ComputeSize;
 
template  < typename  T,  size_t  N>
class  ComputeSize<T[N]> {
public
     static  const  size_t  value = N;
};
 
int  main() { 
     int  arr[4]; 
     std::cout << ComputeSize< decltype ( arr )>::value << std::endl;  // 输出4
}

5.  のVisual  C ++コンパイラの定義済みマクロ:

#include <cstdlib>
#include <iostream>
 
int  main() {
     int  arr[4];
     std::cout << _countof( arr ) << std::endl;   // 输出4.
}

6.  Boostライブラリ

#include "boost/range.hpp"
#include <iostream>
 
int  main(){   
     int  arr[4];   
     std::cout << boost::size( arr ) << std::endl;  // 输出4
}

上記の方法は、動的配列静的配列に適している(新しい新規[])を得ることができない要素の数です。

 

上記のコードは、上記のテストコードやコンパイラは、コンパイルコンパイルして実行します(次のページで最新バージョンに失敗していないかどうかを確認するために、独自にコンパイルして実行することができますのVisual  C ++):

http://webcompiler.cloudapp.net/

 

 

  1.  #include「string.hの」

    STRLEN(A)を見つける文字配列のサイズがあります

  2. sizeof(A)/はsizeof([0]);これは、実質的に普遍的な

  3.  

おすすめ

転載: www.cnblogs.com/h694879357/p/11762538.html