Сравнение std::tuple в C++
Кортежи одного типа сравнивают поэлементно слева направо.
Оператор == требует совпадения каждого
поля на одинаковой позиции. Запишем два
кортежа из трех целых и выведем равенство:
#include <tuple>
std::tuple<int, int, int> left{1, 2, 3};
std::tuple<int, int, int> right{1, 2, 3};
std::cout << (left == right) << "\n";
Оператор < идет от первого поля к
последнему, пока не найдет различие. Запишем
кортежи с общими первыми двумя числами и
выведем сравнение:
#include <tuple>
std::tuple<int, int, int> low{5, 5, 1};
std::tuple<int, int, int> high{5, 5, 9};
std::cout << (low < high) << "\n";
Даны кортежи:
std::tuple<std::string, int> u{"a", 1};
std::tuple<std::string, int> v{"b", 0};
Выведите 1, если u меньше v,
иначе 0.
Создайте два std::tuple<int, int, int>
с одинаковыми первым и вторым полями и
разным третьим. Выведите результат ==.