功能简介
std::tuple是c++11提供的新模板类,在很多流行语言都有对应的实现,一般翻译为元组。使用它可以把多个不同类型的变量组合成一个对象。
简单示例
以下是std::tuple的简单示例(来源: https://en.cppreference.com/w/cpp/utility/tuple)
1 |
|
和struct比较
1 |
struct student { |
相比较于std::tuple,struct需要定义结构体这个复合类型。
多说一句,作为开发,我们要保持学习新知识的习惯。但是不能有了新锤子,就看哪都是钉子。为了用新技术而用。
而应该带着新锤子,观察和思考哪有合适钉子,再合理运用。
和std::pair比较
1 |
std::pair<double, std::pair<char, std::string> > get_student(int id) { |
相比较于std::tuple,std::pair如果想要支持多于2个的变量,需要多层嵌套或结合struct使用。
std::tie的其他用法
std::tie除了第一个例子中演示的用于解构std::tuple中的元素,还可以用来将多个变量构造成std::tuple,从而做大小比较。例如 https://en.cppreference.com/w/cpp/utility/tuple/tie 中演示的例子。这种写法更modern些~
结尾
本文完,作者 yoko ,尊重劳动人民成果,转载请注明原文出处: https://pengrl.com/p/58825/