Код не слишком удобно вставлять, поэтому прикрепляю прогу в файле.
Идея:
Выделить отчество: добавляем в новый вектор буквы после второго пробела ФИО - получаем отчество, и так для всех ФИО - получаем вектор с отчествами.
Отсортировать вектор с отчествами. Делаем с помощью стандартной функции sort, а условие сортировки - буква первого элемента младше буквы второго элемента вектора.
1 votes Thanks 2
carsar38
В принципе все в этой проге классно, но можно обойтись без векторов?
carsar38
Никогда не встречался с векторами даже, мы их не проходили еще), а вообще вопрос, что делает: vector full_names... что обозначает string в ковычках?
ShredingerCat
Вектор - тот же массив, который выделяется на куче (структура данных в оперативке - доступ напрямую по адресу в памяти). Плюс у вектора есть много методов, которые предоставляют удобство программисту.
ShredingerCat
В этнерпрайзе везде используют вектора, но не обычные массивы (если не нужна супер оптимизация, где критично время обращения к менеджеру кучу - маленькая часть операционки, которая дает память программе в рантайме). А string в треугольных кавычках - это элемент вектора (аля массив, состоящий из строк). Треугольные кавычки потому, что вектор - шаблон. П.С обычный массив выделяется на стеке при компиляции (если только не юзаешь специальные операторы типа new).
ShredingerCat
Это я все к тому, что про векторы можно почитать как можно раньше :)
carsar38
А можно векторы здать с клавы ну как в массиве строк?
ShredingerCat
Можно. Читаешь в строку, а потом заталкиваешь ее в конец вектора: std::vector vector_of_strings; std::string tmp_string;
ShredingerCat
К сожалению, в предыдущем комменте заметил, что удаляется все, что указано в треугольных скобках. Нужно vector"треугольная скобка"string"треугольная скобка" vector_of_strings ...
Answers & Comments
Код не слишком удобно вставлять, поэтому прикрепляю прогу в файле.
Идея:
std::vector vector_of_strings;
std::string tmp_string;
std::cin >> tmp_string;
vector_of_strings.emplace_back(tmp_string);