std::string array[] = { "one", "two", "three" };
array
in コードの長さを調べるにはどうすればよいですか?
C++11 をサポートしている場合は、std::begin
とを使用できます。std::end
int len = std::end(array)-std::begin(array);
// or std::distance(std::begin(array, std::end(array));
または、独自のテンプレート関数を作成します。
template< class T, size_t N >
size_t size( const T (&)[N] )
{
return N;
}
size_t len = size(array);
これは C++03 で機能します。C++11 で使用する場合は、constexpr
.
sizeof()
のように - 演算子を使用します
int size = sizeof(array) / sizeof(array[0]);
以上、std::vector
提供しておりますのでご利用std::vector::size()
ください。
int myints[] = {16,2,77,29};
std::vector<int> fifth (myints, myints + sizeof(myints) / sizeof(int) );
これがドキュメントです。範囲ベースの例を考えてみましょう。
このような:
int size = sizeof(array)/sizeof(array[0])