Как проверить, находится ли строка в массиве строк

Как правило, вы устанавливаете такое ограничение по двум причинам:

  1. Это боль для анализа в электронном виде.
  2. Это боль для людей, чтобы разобрать.

Рассмотрим следующий фрагмент кода:

int d, -d;
d = 3;
-d = 2;
d = -d;

Если -d является юридическим идентификатором, то какое значение имеет значение d в конце? -3 или 2? Это неоднозначно.

Также рассмотрим:

int 2e10f, f;
2e10f = 20;
f = 2e10f;

Какое значение имеет значение f в конце? Это также неоднозначно.

Кроме того, это боль, чтобы читать в любом случае. Если кто-то объявляет 2ex10, это опечатка для двух миллионов или имя переменной?

Убедитесь, что идентификаторы начинаются с букв, означает, что единственными языковыми элементами, с которыми они могут конфликтовать, являются зарезервированные ключевые слова.

17
задан user3050705 30 November 2013 в 18:11
поделиться

1 ответ

int size = (*array).size();

Он не скажет вам размер array, он скажет вам длину первой строки в этом массиве, вы должны передать длину массива функции отдельно. Функция должна выглядеть следующим образом:

bool in_array(string value, string *array, int length)

& nbsp;

Но лучшим выбором будет использование std::vector и std::find:

bool in_array(const std::string &value, const std::vector<string> &array)
{
    return std::find(array.begin(), array.end(), value) != array.end();
}

, а затем вы можно использовать как:

int main() {
    std::vector<std::string> tab {"sdasd", "sdsdasd"};

    if (in_array(n, tab)) {
        ...
    }
}
25
ответ дан deepmax 30 November 2013 в 18:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: