к примеру получить индекс значения массива? Без перебора for.
бинарный поиск/std::set
в С++ готовая функция есть как в других языках?
std::lower_bound/upper_bound/binary_search
std::find
Это фор обычный по сути
А строки вообще можно хранить в set?
Почему нельзя?
Потому что для set должен быть перегружен operator<
Так у стринги он перегружен
А что удивительного?
Я даже не представлял
мне кажется это обычный поиск подстроки Что вернет если будет частичное вхождение, а не всего значения элемента массива?
Если вам такое нужно, то это точно не стд. Хотя вроде были какие-то поиски подстрок, но я не помню и не смотрел особо
std::find_if – подстроку сравнивать можно массой способов – предоставьте свой этому алгоритму
Формулировка "имеется массив строк" не предполагает более эффективного решения, к сожалению
Ну это вопросы к спрашивающему
Нет, как раз поиска подстрок и не нужно. Есть массив имен = Петя Вася, Максим и их пароли x1,x2,x3. Я путем составления индекса массива хочу проверять на правильность ввода пароля.
std::find ищет по operator==, а не по подстроке
Обычно для этого используются более эффективные структуры данных, как, например, std::unordered_map. Алгоритмы без правильных структур данных не очень полезны
логически я это понимаю, но это лабы в которых прописаны правила и нельзя использовать вещи до которых ты еще не доучился.
Обсуждают сегодня