View difference between Paste ID: iQ2s7AgB and qhrU9Dhv
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
}