1
std::string array[] = { "one", "two", "three" };

arrayin コードの長さを調べるにはどうすればよいですか?

4

4 に答える 4

6

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.

于 2013-04-07T09:58:13.310 に答える
4

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) );

これがドキュメントです。範囲ベースの例を考えてみましょう。

于 2013-04-07T10:00:31.530 に答える
2

このような:

int size = sizeof(array)/sizeof(array[0])
于 2013-04-07T10:00:59.360 に答える