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的泛化。
相关文章
|
24天前
|
编译器 C++ 容器
【C++】String常见函数用法
【C++】String常见函数用法
15 1
|
1月前
|
C++
c++常见函数及技巧
C++编程中的一些常见函数和技巧,包括生成随机数的方法、制表技巧、获取数字的个位、十位、百位数的方法、字符串命名技巧、避免代码修改错误的技巧、暂停和等待用户信号的技巧、清屏命令、以及避免编译错误和逻辑错误的建议。
18 6
|
30天前
|
存储 算法 C++
C++ STL应用宝典:高效处理数据的艺术与实战技巧大揭秘!
【8月更文挑战第22天】C++ STL(标准模板库)是一组高效的数据结构与算法集合,极大提升编程效率与代码可读性。它包括容器、迭代器、算法等组件。例如,统计文本中单词频率可用`std::map`和`std::ifstream`实现;对数据排序及找极值则可通过`std::vector`结合`std::sort`、`std::min/max_element`完成;而快速查找字符串则适合使用`std::set`配合其内置的`find`方法。这些示例展示了STL的强大功能,有助于编写简洁高效的代码。
32 2
|
1月前
|
存储 C++
c++学习笔记05 函数
C++函数使用的详细学习笔记05,包括函数的基本格式、值传递、函数声明、以及如何在不同文件中组织函数代码的示例和技巧。
27 0
c++学习笔记05 函数
|
1月前
|
存储 搜索推荐 Serverless
【C++航海王:追寻罗杰的编程之路】哈希的应用——位图 | 布隆过滤器
【C++航海王:追寻罗杰的编程之路】哈希的应用——位图 | 布隆过滤器
27 1
|
1月前
|
存储 数据库 C++
"深入剖析Python元组(tuple):与列表的对比、特性解析及高效应用场景展示"
【8月更文挑战第9天】Python元组与列表虽均用于存储元素集合,但有本质差异。元组不可变,创建后无法修改,适合保护数据不被意外更改的场景,如作字典键或传递固定值。列表则可变,支持动态增删改,适用于需频繁调整的数据集。元组因不可变性而在性能上有优势,可用于快速查找。两者各有千秋,根据具体需求选择使用。例如,元组可用于表示坐标点或日期,而列表更适合管理用户列表或库存。
44 1
|
2月前
|
C++ 运维
开发与运维函数问题之析构函数在C++类中起什么作用如何解决
开发与运维函数问题之析构函数在C++类中起什么作用如何解决
35 11
|
2月前
|
C++ 运维
开发与运维函数问题之C++类的简单示例如何解决
开发与运维函数问题之C++类的简单示例如何解决
51 10
|
1月前
|
存储 C++
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
30 0
|
1月前
|
存储 编译器 C++
C++多态实现的原理:深入探索与实战应用
【8月更文挑战第21天】在C++的浩瀚宇宙中,多态性(Polymorphism)无疑是一颗璀璨的星辰,它赋予了程序高度的灵活性和可扩展性。多态允许我们通过基类指针或引用来调用派生类的成员函数,而具体调用哪个函数则取决于指针或引用所指向的对象的实际类型。本文将深入探讨C++多态实现的原理,并结合工作学习中的实际案例,分享其技术干货。
40 0