C++11中的tuple应用:让函数返回多个值

简介: 在没有tuple之前,如果函数需要返回多个值,则必须定义一个结构体,有了C++11,可以基于tuple直接做了,下面是个示例:点击(此处)折叠或打开 // 编译:g++ -std=c++11 -g -o x x.
在没有tuple之前,如果函数需要返回多个值,则必须定义一个结构体,有了C++11,可以基于tuple直接做了,下面是个示例:
点击( 此处 )折叠或打开
  1. // 编译:g++ -std=c++11 -g -o x x.cpp
  2. #include tuple> // tuple头文件
  3. #include stdio.h>
  4. #include string>
  5. using namespace std;

  6. // 函数foo返回tuple类型
  7. tupleint, string> foo();

  8. int main()
  9. {
  10.     // 两个不同类型的返回值a和b
  11.     int a;
  12.     string b;

  13.     // 注意tie的应用
  14.     tie(a, b) = foo();
  15.     printf("%d => %s\n", a, b.c_str());

  16.     // 注意tuple是一个可以容纳不同类型元素的容器
  17.     // ,在C++11中,下面的x一般使用auto定义,这样简洁些。
  18.     tupleint, string, char, float> x = make_tuple(2014, "tupule", 'x', 5.30);
  19.     printf("%d, %s, %c, %.2f\n", get0>(x), get1>(x).c_str(), get2>(x), get3>(x));
  20.     
  21.     return 0;
  22. }

  23. tupleint, string> foo()
  24. {
  25.     // 用make_tuple来构造一个tuple
  26.     return make_tuple(2014, "tuple");
  27. }

从上述的代码,可以看出tuple是对pair的泛化。
相关文章
|
2天前
|
存储 C++
c/c++宏定义(函数)
c/c++宏定义(函数)
|
3天前
|
Linux 程序员 图形学
C++语言在现代软件开发中的应用与实践
C++语言在现代软件开发中的应用与实践
10 2
|
3天前
|
存储 程序员 C语言
深入理解C++:从语言特性到实践应用
深入理解C++:从语言特性到实践应用
15 3
|
4天前
|
运维 Serverless Go
Serverless 应用引擎产品使用之在阿里云函数计算中c++模板,将编译好的C++程序放进去部署如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
9 1
|
4天前
|
编译器 C++
【C++进阶】引用 & 函数提高
【C++进阶】引用 & 函数提高
|
7天前
|
C++
C++:深度解析与实战应用
C++:深度解析与实战应用
8 1
|
7天前
|
安全 vr&ar C++
C++:编程语言的演变、应用与最佳实践
C++:编程语言的演变、应用与最佳实践
|
8天前
|
设计模式 存储 算法
C++从入门到精通:3.7阅读和理解开源项目——在实际项目中应用C++编程技巧和规范
C++从入门到精通:3.7阅读和理解开源项目——在实际项目中应用C++编程技巧和规范
|
8天前
|
C++
C++从入门到精通:2.1.2函数和类——深入学习面向对象的编程基础
C++从入门到精通:2.1.2函数和类——深入学习面向对象的编程基础
|
8天前
|
存储 C++
C++从入门到精通:2.1.1函数和类
C++从入门到精通:2.1.1函数和类