Daily bit(e) C++. Лексикографическое сравнение с контейнерами
Добавлено30 сентября 2023 в 10:58
Daily bit(e) C++ #237, поддержка лексикографического сравнения для контейнеров стандартной библиотеки.

Стандартные контейнеры C++ обеспечивают лексикографическое сравнение с помощью стандартного набора операторов сравнения (до C++20) и оператора трехстороннего сравнения (начиная с C++20).
Эта поддержка охватывает std::array, std::vector, std::deque, std::(forward_)list, std::string (и вариации), std::(multi)set, std::(multi)map, std::stack и std::queue.
#include <vector>
#include <string>
#include <cassert>
std::vector<int> data1{1, 3, 4, 5};
std::vector<int> data2{1, 3, 6, 7};
std::vector<int> data3{1, 3};
assert(data1 < data2);
assert(data3 < data1);
std::u8string str1 = u8"😃😄😁";
std::u8string str2 = u8"😁😁😁";
std::u8string str3 = u8"😁";
assert(str1 < str2);
assert(str3 < str2);
Открыть пример на Compiler Explorer.
