C++ 新特性学习(二) -- Array、Tuple和Hash库
#include <cstdio>
#include <string>
#include <tuple>
#include <iostream>
struct foo {
int m;
friend bool operator< (const foo& l, const foo& r) {
return l.m < r.m;
}
friend bool operator==(const foo& l, const foo& r) {
return l.m == r.m;
}
};
int main() {
std::tuple<int, std::string, double, foo> tup0,
tup1 = std::tuple<int, std::string, double, foo>(2, "2", 1.0, foo());
tup0 = std::make_tuple(1, "2", 3.0, foo());
// 比较操作符是从左向右比较的,但是要求所有元素支持比较操作
std::cout<< (tup0 < tup1)<< std::endl;
// 对其中元素的操作比较特别
std::get<3>(tup1).m = std::get<3>(tup0).m = 1;
std::get<0>(tup1) = 1;
std::get<2>(tup1) = 3.0;
// 相等比较符也一样
std::cout<< (tup0 == tup1)<< std::endl;
return 0;
}Last updated
Was this helpful?