Поиск подстроки в std::vector<string>

129
24 декабря 2021, 04:00

Подскажите как решить следующую задачу оптимальным путем:

есть std::vector stringVector, содержащий 3 элемента.

Есть задача:

Найти, содержит ли i-ый элемент stringVector подстроку(std::string).

Пример:

Допустим, stringVector состоит из:

stringVector[0] = "Сегодня хороший день.";

stringVector[1] = "Завтра будет день апокалипсиса.";

stringVector[2] = "Привет, Андрей.";

string searchString = "день";

То, что я написал(но не работает):

        for (size_t i = 0;  i < tokens.size(); i++)
        {
            // Не работает: ошибка бинарный оператор == не найден и т.д. 
            auto result = find(tokens[i].begin(), tokens[i].end(), searchString);
            if (result != tokens[i].end())
            {
                // Какое-то действие
            }
        }

P.s. я бы мог сделать перегрузку оператора == в глобальной области(или достаточно в области видимости класса?) для моего случая и объявить его дружественным классу, но не понимаю какие аргументы он должен принимать.

Answer 1

Вы хотите что-то такое?

vector<string> tokens;
string sub;
....
for(const auto& s: tokens)
    if (s.find(sub)!=s.npos)
    {
        // Найдена подстрока
    }
READ ALSO
Как передать массив в конструктор в C++?

Как передать массив в конструктор в C++?

Я реализовываю свой класс vector, но у меня возникла проблема: как передать в конструктор массив в таком виде: ClassName object = {1, 2, 3, 4, 5};?

180
Проверка ввода только одного символа

Проверка ввода только одного символа

Написать программу, печатающую символы от A до введенного с клавиатуры символа (последний возможный: Z)Для каждого символа вывести номер,...

94
Grace Dependency Injection breaks project

Grace Dependency Injection breaks project

Я начал писать проект с нуля, поэтому я хотел реализовать DependencyInjectionВыбрал Grace, потому что он уже реализован на старом проекте, его писал не я, так...

178
Неравномерное изменение значения DOTween Unity3D

Неравномерное изменение значения DOTween Unity3D

Столкнулся с тем, что DOTween неравномерно изменяет значение

194