Daily bit(e) C++. Лексикографическое сравнение с контейнерами
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.