Есть ли код, который проверяет, существует ли определенная строка внутри массива? Например, у меня есть строка «Джон», тогда мне нужно проверить, находится ли «Джон» уже в именах массивов [10].Проверка наличия элемента в массиве
ответ
std::find
делает именно это:
auto i = std::find(std::begin(a), std::end(a), "John");
if (i != std::end(a)) … // item found!
Однако нужно учитывать, что это делает линейный проход над элементами. Это не проблема для 10 предметов, но она становится неэффективной быстро с большим количеством. Для очень больших наборов используйте std::unordered_set
вместо массива, чтобы достичь (теоретически) постоянного времени выполнения. В качестве альтернативы, если вы знаете, что массив отсортирован, вы можете использовать std::binary_search
для достижения логарифмического времени выполнения.
Вот тот же код, завернутый в функции удобства:
template <typename It, typename T>
bool contains(It begin, It end, T const& value) {
return std::find(begin, end, value) != end;
}
А вот перегрузки удобства для массивов C:
template <typename T, typename U, std::size_t N>
bool contains(T (&arr)[N], U const& value) {
return std::find(arr, arr + N, value) != arr + N;
}
(Синтаксис для передачи массивов в функции немного странно .)
does std :: найти нужный заголовок? # ..? – user3125901
неважно, я нашел его, хотя спасибо за помощь! – user3125901
О, я буду использовать его как выражение для Это будет выглядеть так: if (Слово «Джон» находится в имени массива []) Что-то вроде этого? – user3125901
Если вы хотите идти архаичным:
function in_array(String my_array[], String findthis){
len=sizeof my_array;
for(int i=0;i<len;i++){
if(my_array[i]==findthis){
return true;
}
}
return false;
}
затем
in_array(array_of_strings, "john");
Я написал это наспех, и я очень устал, но, надеюсь, он может быть полезен.
Вы не можете передавать массивы по значению в C++. Ваш код передает указатель. 'sizeof my_array', следовательно, делает неправильную вещь. –
этот комментарий помогите мне, хотя .. xD это дает мне идею, что мне нужно, спасибо: D – user3125901
Это странный диалект C++, который вы пишете ... – leemes
- 1. Проверка наличия элемента в булевом массиве
- 2. проверка наличия массива в массиве
- 3. проверка наличия значения в массиве
- 4. проверка наличия указателей в массиве
- 5. Проверка наличия значения в массиве
- 6. Проверка наличия узла в массиве
- 7. Проверка наличия элемента формы
- 8. Проверка наличия элемента
- 9. Проверка наличия элемента в стеке
- 10. Проверка наличия элемента в Python
- 11. Проверка наличия элемента в векторе
- 12. Проверка наличия элемента в JComboBox?
- 13. Проверка наличия элемента в webdriverio
- 14. Проверка наличия элемента в подстроке
- 15. Проверка наличия определенного элемента в определенном массиве с использованием javascript
- 16. C: Проверка наличия элемента в списке
- 17. Проверка наличия фокуса элемента DOM
- 18. Проверка наличия элемента до сохранения
- 19. Проверка наличия пустого элемента DataGridView
- 20. проверка наличия элемента с классом
- 21. Проверка наличия элемента по индексу
- 22. Двойная проверка наличия элемента карты?
- 23. Проверка наличия элемента перед продолжением добавления элемента
- 24. Проверка наличия буквы в массиве символов python
- 25. Проверка наличия даты в массиве дат
- 26. Проверка наличия элементов в массиве Java
- 27. Проверка наличия всех цифр в другом массиве
- 28. Проверка наличия пользователя в массиве пользователей
- 29. Проверка наличия всех номеров в массиве Java
- 30. Проверка наличия значений XML в массиве AS3
Кажется, вы просто спрашиваете: «Как мне это сделать?» Это не очень хороший способ задать вопрос, потому что это означает, что вы, по крайней мере, не проверяли документацию, прежде чем спрашивать людей. –