SHOW:
|
|
- or go back to the newest paste.
| 1 | #include <iostream> | |
| 2 | #include <string> | |
| 3 | #include <vector> | |
| 4 | #include <algorithm> | |
| 5 | ||
| 6 | using namespace std; | |
| 7 | ||
| 8 | int main() {
| |
| 9 | /* FOR SUPPORT: объявляем переменную для хранения количество чисел и инициализируем нулем */ | |
| 10 | int n = 0; | |
| 11 | /* FOR SUPPORT: объявляем строку */ | |
| 12 | string val; | |
| 13 | /* FOR SUPPORT: объявляем вектор строк */ | |
| 14 | vector<string> v; | |
| 15 | /* FOR SUPPORT: считываем число */ | |
| 16 | cin >> n; | |
| 17 | /* FOR SUPPORT: выделяем память под место для n элементов */ | |
| 18 | v.reserve(n); | |
| 19 | /* FOR SUPPORT: запускаем цикл на n итераций */ | |
| 20 | for (int i = 0; i < n; ++i) {
| |
| 21 | /* FOR SUPPORT: считываем строку */ | |
| 22 | cin >> val; | |
| 23 | /* FOR SUPPORT: добавляем строку в конец вектора */ | |
| 24 | v.push_back(val); | |
| 25 | } | |
| 26 | /* FOR SUPPORT: begin() вернет начало контейнера\строки end() вернет конец контейнера\строки | |
| 27 | * передаем в std::sort 3-им параметром лямбда-функцию которая сравнивает две строки в лексикографически */ | |
| 28 | sort(begin(v), end(v), [](const string& l, const string& r) {
| |
| 29 | return lexicographical_compare( | |
| 30 | begin(l), end(l), | |
| 31 | begin(r), end(r), | |
| 32 | /* FOR SUPPORT: передаем еще одну лямбда-функцию которая сравнивает символы без учета регистра */ | |
| 33 | [](char cl, char cr) { return tolower(cl) < tolower(cr); }
| |
| 34 | ); | |
| 35 | } | |
| 36 | ); | |
| 37 | /* FOR SUPPORT: запускаем цикл для обхода вектора */ | |
| 38 | for (int i = 0; i < v.size(); ++i) {
| |
| 39 | /* FOR SUPPORT: выводим i-ый элемент вектора */ | |
| 40 | cout << v[i] << ' '; | |
| 41 | } | |
| 42 | /* FOR SUPPORT: выводим перевод строки */ | |
| 43 | cout << endl; | |
| 44 | } |