Daily bit(e) C++. Лексикографическое сравнение с контейнерами

Добавлено 30 сентября 2023 в 10:58

Daily bit(e) C++ #237, поддержка лексикографического сравнения для контейнеров стандартной библиотеки.

Daily bit(e) C++

Стандартные контейнеры 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.

Теги

C++ / CppDaily bit(e) C++Программирование

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.