(GeekBand)STL与泛型编程 学习笔记(2)

本期干货依旧,时间有限,就挑一个感兴趣的实践了下。

在没有tuple之前,如果函数需要返回多个值,则必须定义一个结构体,有了C++11,可以基于tuple直接做了,下面是个示例:

点击(此处)折叠或打开

// 编译:g++ -std=c++11 -g -o x x.cpp

#include  // tuple头文件

#include

#include

using namespace std;

// 函数foo返回tuple类型

tuple foo();

int main()

{

   // 两个不同类型的返回值a和b

   int a;

   string b;

   // 注意tie的应用

   tie(a, b) = foo();

   printf("%d => %s\n", a, b.c_str());

   // 注意tuple是一个可以容纳不同类型元素的容器

   // ,在C++11中,下面的x一般使用auto定义,这样简洁些。

   tuple x = make_tuple(2014, "tupule", 'x', 5.30);

   printf("%d, %s, %c, %.2f\n", get<0>(x), get<1>(x).c_str(), get<2>(x), get<3>(x));


return 0;

}

tuple foo()

{

   // 用make_tuple来构造一个tuple

   return make_tuple(2014, "tuple");

}

从上述的代码,可以看出tuple是对pair的泛化。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容