如何优雅的写C++代码 Obotcha介绍(如何返回多个数据)

这篇博客介绍了如何在C++中使用std::tuple来解决函数返回多个数据的问题。通过示例展示了如何定义和使用std::tuple,以及如何通过std::tie获取返回的多个值。这种方法在需要返回复杂数据组合时,避免了每次都创建新类的繁琐。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们写函数的时经常会遇到这样的情况,需要返回多个数据,例如:

std::string getStudentInfo(int &i) {
    i = 100;
    return "wang"
}

这个函数原本的想法是想获得学生信息(名字,学号),但是返回值只能一个,怎么能同时返回(名字,学号)呢?额,当然,你说返回一个类啥的都可以,但是如果每次都是为了返回值创建一个类,那是不是有点繁琐啊。这里推荐大家使用std::tuple的方法来实现同时返回多个数据的返回数值。方法如下:

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

//使用std::tuple定义返回值
std::tuple<std::string,int> getValue() {
  return std::make_tuple("wang",100);
}

int main() {
  std::string name;
  int number;
  //使用std::tie获取返回数值,注意name和number需要提前定义一下。
  std::tie(name,number) = getValue();
  std::cout<<"name is "<<name<<",number is "<<number;
  return 0;
}

obotcha在实现网络的时候通常需要返回数据和状态码,所以采用了这个方法。哈哈。大家有兴趣的话可以看一下obotcha的github。
GitHub - wangsun1983/Obotcha: Tool library writen by C++14

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值