结构化 in C++17【C++学习笔记】

本文介绍了C++17中的结构化绑定特性,它是处理多返回值的一种更简洁易读的方式。相较于传统的元组访问和`std::tie`,结构化绑定允许直接通过变量名来存储元组或对组的元素,提高了代码的可读性和便利性。示例中展示了结构化绑定如何应用于元组,使得无需通过索引访问,使得代码更加直观。

75.结构化 in C++17

今天的主题:结构化绑定,只针对C++17

结构化绑定是一个新特性,让我们更好的处理多返回值

(曾有一回谈过如何处理多返回值,当时是用了结构体去处理,而这个结构化绑定就是在这个的基础上拓展的一种新方法,特别是处理元组,对组(pairs)以及返回诸如此类的东西

🍅没用结构化前的应对多返回值

先看以前应对多返回值的方法

#include <iostream>
#include <string>
#include <tuple>

std::tuple<std::string, int> CreatPerson() {
    return { "Cherno", 24};
}

int main() {
	auto person = CreatPerson();
    std::string &name = std::get<0>(person);	//获取元组的数据
    int age = std::get<1>(person);
    //说实话,元组的数据获取有点太晦涩了不能像结构体一样直接XXX.age这样访问更加可读
    
    //tie会好一点
    std::string name;
    int age;
    std::tie(name, age) = CreatPerson;
}

但以上的方法都还不如直接用结构体更加简易可读

当然,接下来就是结构化绑定的引出了

🍅用了结构化后的处理多返回值

#include <iostream>
#include <string>
#include <tuple>

std::tuple<std::string, int> CreatPerson() {
    return { "Cherno", 24};
}

int main() {
	auto[name, age] = CreatPerson();	//直接用name和age来储存返回的值
}

这个只有在C++17才可实现,相当简便和可读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值