shizaero

Задание 2

Aug 30th, 2022
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.07 KB | Source Code | 0 0
  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. }
Tags: 2-lambda
Add Comment
Please, Sign In to add comment