функция, чтобы найти длину 2d строкового массива в cpp? - PullRequest
0 голосов
/ 10 февраля 2012

Есть ли в cpp встроенная функция, которая может дать мне длину 2-мерного массива

например, функция для аргументов

const char* args[] = {"412", "..7", ".58", "7.8", "32.", "6..", "351", "3.9", "985", "...", ".46"}

должен вернуть 11

Ответы [ 4 ]

7 голосов
/ 10 февраля 2012

Мне нравится для этого использовать шаблонную функцию .

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

Преимущество перед подходом, использующим sizeof, заключается в том, что вы не можете случайно сделать это с указателем.

4 голосов
/ 10 февраля 2012

Это даст количество элементов в args:

sizeof(args) / sizeof(args[0])
2 голосов
/ 10 февраля 2012

В C ++ 11 вы можете использовать:

std::end(args) - std::begin(args)
1 голос
/ 10 февраля 2012

sizeof(args) / sizeof(*args)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...