tuple(元组)备注
元组是能够容纳元素集合的对象。每个元素可以是不同的类型。
c++ 标准库
tuple::operator=
tuple::swap
swap (tuple)
get (tuple)

示例:

// tuple example
#include <iostream>     // std::cout
#include <tuple>        // std::tuple, std::get, std::tie, std::ignoreint main ()
{std::tuple<int,char> foo (10,'x');auto bar = std::make_tuple ("test", 3.1, 14, 'y');std::get<2>(bar) = 100;                                    // access elementint myint; char mychar;std::tie (myint, mychar) = foo;                            // unpack elementsstd::tie (std::ignore, std::ignore, myint, mychar) = bar;  // unpack (with ignore)mychar = std::get<3>(bar);std::get<0>(foo) = std::get<2>(bar);std::get<1>(foo) = mychar;std::cout << "foo contains: ";std::cout << std::get<0>(foo) << ' ';std::cout << std::get<1>(foo) << '\n';return 0;
}

boost库tuple
以下参考:https://blog.csdn.net/shudaqi2010/article/details/24895885

#include<iostream>
#include<string>
#include<boost/tuple/tuple.hpp>
#include<boost/tuple/tuple_io.hpp>
#include <boost/tuple/tuple_comparison.hpp>using namespace std;int main(){//boost::tuple 扩展了 C++ 的数据类型 std::pair 用以储存多个而不只是两个值。//除了 boost::tuple, 这一章还涵盖了类 boost::any 和 boost::variant 以储存那些不确定类型的值。 其中 boost::any 类型的变量使用起来就像弱类型语言中的变量一样灵活。 另一方面, boost::variant 类型的变量可以储存一些预定义的数据类型, 就像我们用 union 时候一样。typedef boost::tuple<std::string, std::string> person1;person1 p1("Boris", "Schaeling");cout << p1 << std::endl;//就像 std::pair 有辅助函数 std::make_pair() 一样, 一个元组也可以用它的辅助函数 boost::make_tuple() 来创建。std::cout << boost::make_tuple("Boris", "Schaeling", 43) << std::endl;//一个元组也可以存储引用类型的值。std::string s = "Boris";std::cout << boost::make_tuple(boost::ref(s), "Schaeling", 43) << std::endl;//因为 "Schaeling" 和 43 是按值传递的,所以就直接存储在了元组中。 与他们不同的是: person 的第一个元素是一个指向 s 的引用。 Boost.Ref 中的 boost::ref() 就是用来创建这样的引用的。 相对的, 要创建一个常量的引用的时候, 你需要使用 boost::cref() 。//在学习了创建元组的方法之后, 让我们来了解一下访问元组中元素的方式。 std::pair 只包含两个元素, 故可以使用属性 first 和 second 来访问其中的元素。 但元组可以包含无限多个元素, 显然, 我们需要用另一种方式来解决访问的问题。typedef boost::tuple<std::string, std::string, int> person2;person2 p2 = boost::make_tuple("Boris", "Schaeling", 43);std::cout << p2.get<0>() << std::endl;std::cout << boost::get<0>(p2) << std::endl;//我们可以用两种方式来访问元组中的元素: 使用成员函数 get() , 或者将元组传给一个独立的函数 boost::get() 。 使用这两种方式时, 元素的索引值都是通过模板参数来指定的。 例子中就分别使用了这两种方式来访问 p 中的第一个元素。 因此, Boris 会被输出两次。//另外, 对于索引值合法性的检查会在编译期执行, 故访问非法的索引值会引起编译期错误而不是运行时的错误。//对于元组中元素的修改, 你同样可以使用 get() 和 boost::get() 函数。typedef boost::tuple<std::string, std::string, int> person3;person3 p3 = boost::make_tuple("Boris", "Schaeling", 43);p3.get<1>() = "Becker";std::cout << p3 << std::endl;//get() 和 boost::get() 都会返回一个引用值。 例子中修改了 lastname 之后将会输出: (Boris Becker 43) 。//Boost.Tuple 除了重载了流操作运算符以外, 还为我们提供了比较运算符。 为了使用它们, 你必须要包含相应的头文件: boost/tuple/tuple_comparison.hpp 。typedef boost::tuple<std::string, std::string, int> person4;person4 p4 = boost::make_tuple("Boris", "Schaeling", 43);person4 p5 = boost::make_tuple("Boris", "Becker", 43);std::cout << (p4 != p5) << std::endl;//上面的例子将会输出 1 因为两个元组 p1 和 p2 是不同的。}编译后输出:(Boris Schaeling)
(Boris Schaeling 43)
(Boris Schaeling 43)
Boris
Boris
(Boris Becker 43)
1

tuple(元组)备注相关推荐

  1. python中元组的使用_Python当中tuple元组的使用

    Python Python开发 Python语言 Python当中tuple元组的使用 python当中元组的使用比起list列表来说就简单多了!因为tuple一般是不能进行修改的,一旦进行定义则无法 ...

  2. pythontuple数据类型_Python基础教程2d–数据类型-tuple(元组)

    1定义 tuple(元组)也是一种顺序结构的数据类型,定义一个空元组的方法用英文小括号: 变量名=() t = () 定义一个包含了多个元素的元组在小括号中用逗号分隔开各个元素: 源码print('\ ...

  3. Python基础教程:list列表、tuple元组、range常用方法总结

    list 列表(数组),是可迭代对象,列表是可变的所以列表的方法都是在列表本身更改的.里面看可以放各种数据类型的数据,可存储大量数据 连接列表可以使用 + 或 extend() a = [1, 3, ...

  4. Python第三、四种数据类型——List(列表) and Tuple(元组)

    目录 一. List(列表) 1.定义一个 List 2. 对 List 进行截取(大致方法与String的截取类似) 3. 添加一个元素,使用 append() 方法 4.删除一个元素,使用 pop ...

  5. pythontuple([1、2、3)_Python 进阶之路 (三) Tuple元组使用指南

    比List更安全的数据类型 大家好,今天为大家介绍一种更为安全的Python内置数据类型:tuple(元组),以及它的基础用法 元组是什么 元组(tuple)是另一种有序的数据类型,与list比较类似 ...

  6. java 元组 getinteger_TS数据类型:从C++/Java/Python到TS看元组tuple—元组的来龙去脉...

    在C++有Java这种强类型语言中,常用的Array.List.Set ,在集合中只能是一种类型(可以复习下:<再谈Java数据结构-分析底层实现与应用注意事项). int data[] = n ...

  7. pythontuple数据类型_Python数据类型之Tuple元组实例详解

    本文实例讲述了Python数据类型之Tuple元组.分享给大家供大家参考,具体如下: tuple元组 1.概述 本质上是一种有序的集合,和列表非常的相似,列表使用[]表示,元组使用()表示. 特点:一 ...

  8. Python序列 数据类型 创建方式 Tuple元组 Str字符串 List列表 dict字典 Set集合 range,zip,map,enumerate

    Python 序列分类 数据类型 详细介绍 Python 主要数据类型: 元组Tuple, 字符串Str,列表List,字典Dict,集合Set 对比 元组Tuple 字符串Str 列表List 字典 ...

  9. Python语法-1-变量、输出、List列表、tuple元组、条件判断和循环等重要基础知识

    针对Openmv3上的Python应用(摘录带修改) 输出 1. 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字.比如输出'hello, world',用代码实现如下: print( ...

  10. Python数据容器、list列表、tuple元组、str字符串、数据容器(序列)切片、set集合、dict字典、字符串大小比较

    数据来源 01 数据容器 为什么学习数据容器 数据容器 总结 02 列表 1)列表定义 为什么需要列表 列表的定义语法 列表的定义方式 演示 """ 演示数据容器之:li ...

最新文章

  1. 10使用CSS美化页面
  2. Geoffrey Hinton专访:如何解释神经网络的变迁
  3. DL之CNN:卷积神经网络算法简介之卷积矩阵、转置卷积(反卷积Transpose)、膨胀卷积(扩张卷积Dilated/带孔卷积atrous)之详细攻略
  4. UML类图详解_泛化关系
  5. 一个即将毕业的软件工程大学生的感悟
  6. SpringCloud OpenFeign 远程HTTP服务调用用法与原理
  7. java 同步原语_你所不知道的有关Java 和Scala中的同步问题
  8. 深圳手机厂家逐渐倾向谷歌Android手机
  9. hge引擎配置登录器教程_HGEM2引擎登录器列表格式TXT
  10. android人脸解锁亮屏,华为Mate 10升级人脸解锁:可能是最好用的安卓人脸识别
  11. 【互动赠书】第 4 期开奖,第 5 期书单(21本)
  12. 洛谷——P1296 奶牛的耳语(java实现)
  13. 物理隔离网闸——入门篇(2)
  14. 基于Filament引擎的Animoji效果实现
  15. 我是这样入门“机器学习”的
  16. Sharepoint 2013 页面置顶(Topbar)小插件
  17. linux下grep同时匹配多个单词,Linux下使用grep命令搜索多个单词的方法
  18. qrcodejs二维码合成海报
  19. 手机屏幕坏了怎么把数据导出来_手机屏幕密码忘了怎么办?这个方法轻松解除手机屏幕密码...
  20. Android Flurry使用说明

热门文章

  1. php stream 系列函数,PHP stream 系列函数使用遇到的问题??
  2. python办公模块_Python 办公自动化教程
  3. Asynctask源码分析
  4. 怎样熟练使用一项技术
  5. 设置user-agent骗过服务端安全检查
  6. MySQL查询区分大小写
  7. 计算机程序的思维逻辑 (63) - 实用序列化: JSON/XML/MessagePack
  8. Brocade IP 产品配置 与Cicso比较
  9. centos使用yum安装gcc
  10. 在三层交换机上配置DHCP