Как вывести индекс элемента вектора по наличию в нём определённого значения
Вообщем, у меня есть проблема и её очень тяжело описать, но я попробую.
К примеру: есть вектор с двумя строками. Дальше я ищу к примеру букву o. Если он есть в 1-ой строке вектора, то выводится индекс строки, т.е. 0, но если буквы о нет в 1-ой строке, а есть во 2-ой, то следовательно выводим 1, а если вообще нигде нет буквы о, то выводим -1.
Думаю немного, но суть передал.
vector<string> lorem = {"Lorem Ipsum is simply dummy text of the printing and typesetting
industry.", "Xorem Ipsum has been the industry's standard dummy"};
// псевдокод
auto a = lorem.find('o'); // a = 0, т.к. в 1-ой строке есть "о"
auto b = lorem.find('X'); // b = 1, т.к. во 2-ой строке есть "X"
Ответы (2 шт):
Автор решения: user393524
→ Ссылка
Цикл по всем элементам с std::string::find(). Нашли - выходим, не нашли продолжаем.
Псевдокод:
bool found = false;
size_t index = 0;
while (!found) {
str = strings[index++];
found = str.find_first_of(symbol) != npos;
}
Автор решения: bipll
→ Ссылка
std::find_if(lorem.cbegin(), lorem.cend(),
[](auto const &s){ return s.find('o') != s.npos; });