做网站便宜的公司,企业解决方案和应对措施的区别,专业做二手房的网站有哪些,建设银行征信中心网站C 学习笔记#xff08;Structured bindings#xff09;
这个特性是 C17 引入的#xff0c;个人认为主要是解决如何让函数返回多个值的问题。在这之前#xff0c;我们一般用 std::pair 或者 std::tuple 来返回多个值。比如下面的例子#xff1a;
std::tupleint, int …C 学习笔记Structured bindings
这个特性是 C17 引入的个人认为主要是解决如何让函数返回多个值的问题。在这之前我们一般用 std::pair 或者 std::tuple 来返回多个值。比如下面的例子
std::tupleint, int ,int test()
{return std::make_tuple(1,2,3);
}std::pairint, double test2()
{return std::make_pair(12, 12.222);
}int a1, a2, a3;double b1;std::tie(a1, a2, a3) test();qDebug() a1 a1 ,a2 a2 , a3 a3;std::tie(a1, b1) test2();qDebug() a1 a1 ,b1 b1;在上面的例子中我们先定义了一些变量然后用 std::tie 把他们绑定成一个 std::tuple这样就可以获取多个值了。
在C 17 中把这个特性更近了一步。例如下面的例子 auto [aa1, aa2, aa3] test();qDebug() aa1 aa1 ,aa2 aa2 , aa3 aa3;另外C 17 还扩充了 if 和 swtich 的语法可以像下面这样 if(auto [aa1, aa2, aa3] test(); aa2 2){qDebug() aa1 aa1 ,aa2 aa2 , aa3 aa3;}switch (auto [aa1, aa2, aa3] test(); aa2 ) {case 1:qDebug() 1;break;case 2:qDebug() 2;break;default:break;}