Я пытаюсь найти общие слова между двумя векторами std::string. Я хочу поместить их в отсортированный список, отсортированный по длине, а затем слова каждой длины отсортировать по алфавиту. Мне нужно использовать функции и функторы stl.
Мои мысли: используя for_each, пройдите через первый вектор и для каждого слова сравните его с другим вектором, используя функтор (если он общий, добавьте в список в функторе). Тогда в результирующем списке будут только общеупотребительные слова. Вот где я застрял, я знаю, как сортировать по алфавиту, но как мне отсортировать их по длине, а затем отсортировать фрагменты одинаковой длины по алфавиту? Я просмотрел stl, но я не нашел то, что мне нужно. Или я просто думаю об этом неправильно. Есть идеи?
Пример:
vec1: "и", "таким образом", "это", "имеет", "а", "начало", "и", "конец"
vec2: "и", "поэтому", "звезды", "являются", "начало", "до", "падение", "до", "их", "конец"
результат: "и", "конец", "начало"