精华内容
下载资源
问答
  • tuple 类型

    千次阅读 2018-08-26 21:24:43
    STL当中的tuple类型 主要内容 起因 用过python等动态语言的人都应该知道,这类的语言函数都可以返回多个值,每个值可以是不同的类型的对象。同样Java和python当中都有可以装载不同类型的变长数组存在,...

    写在前面

    STL当中的tuple类型

    主要内容

    起因

    用过python等动态语言的人都应该知道,这类的语言函数都可以返回多个值,每个值可以是不同的类型的对象。同样Java和python当中都有可以装载不同类型的变长数组存在,Java当中是容器Array,python当中是列表list。
    在c++当中没有提供一个方便的数据结构可以像这样实现不同类型的对象的打包。唯一能够实现的操作也是通过struct定义不同的类型的成员进行打包,这样在处理不同的类型的时候都要写上一遍不同的定义使用起来确实麻烦。

    tuple

    所以c++标准库在c++11里添加了tuple这样一个类模板,通过它可以进行不同类型的数据的打包从而可以方便的实现函数的多返回值。

    下面是对于tuple的使用实例:

    #include <iostream>
    #include <tuple>
    #include <vector>
    #include <string>
    using namespace std;
    int main()
    {
        tuple<string, unsigned int, double> Zhouz;
        Zhouz = make_tuple("zz", 24, 60.0);
    
        //或者利用typedef来简化
        typedef tuple<string, unsigned int, double> Human;
    
        Human Yic("zz", 24, 60.0);
    
        vector<Human> vecHuman;
        vecHuman.push_back(Zhouz);
        vecHuman.push_back(Yic);
    
        //获取tuple数据组变量zhouz中的第一个数据名字
        cout<<"姓名:"<<get<0>(Zhouz)<<endl;
    
        get<1>(Zhouz) += 1;
    
        cout<<"年龄:"<<get<1>(Zhouz)<<endl;
    
        cout<<"体重:"<<get<2>(Zhouz)<<endl;
    
        return 0;
    }

    tuple支持的操作:

    可以通过模板参数的指定定义一个tuple类型的对象。
    也可以方便的使用make_tuple根据传入的对象的类型进行直接的创建。这个函数自然是个模板函数使用了参数的类型推导机制。
    可以通过模板函数get获取tuple对象第i个元素的引用。
    通过两个模板类可以获取tuple对象的元素的个数以及第i个元素的类型。
    通过c++11的decltype可以获取某个tuple对象的实际类型。

    C++ 11中引入的tuple是一个N元组。它相当于有N个成员的结构体,只不过这个结构体的成员都是匿名的。tuple中有两个特殊的函数,一个是head(),用于获取第一个成员的值,另一个是tail(),用于获取剩下所有成员的值,tail()本身又是一个tuple。这样,如果我们想取tuple中第二个成员的值,则可以先取tail()的值,再取tail()的head()的值。当然,这样使用的话比较麻烦,所以C++ 11提供了get函数通过索引来获取tuple中某个成员的值。另外,通过make_tuple可以很方便地构造一个tuple对象。


    tuple是如何实现的?

    前面说过,tuple是一个N元组,而N的个数是没有限制的,也就是说,tuple可以包含0个、1个、2个或更多的元素,每个元素的类型则通过模板参数指定。那么,tuple是如何做到这些的呢?答案是可变参数模板。
    虽然tuple已近可以实现不同的数据类型的对象的打包,但是还是不能动态的往里头添加不同的对象,因为这个tuple的类型已近定了无法再给这个对象添加新的成员。

    展开全文
  • tuple类型

    2021-01-16 00:02:07
    文章目录前言一、对于tuple的使用...所以c++标准库在c++11里添加了tuple这样一个类模板,通过它可以进行不同类型的数据的打包从而可以方便的实现函数的多返回值。 一、对于tuple的使用实例: #include <iostream>


    前言

    在c++当中没有提供一个方便的数据结构可以实现不同类型的对象的打包。唯一能够实现的操作也是通过struct定义不同的类型的成员进行打包,这样在处理不同的类型的时候都要写上一遍不同的定义使用起来很麻烦。所以c++标准库在c++11里添加了tuple这样一个类模板,通过它可以进行不同类型的数据的打包从而可以方便的实现函数的多返回值。


    一、对于tuple的使用实例:

    #include <iostream>
    #include <tuple>
    #include <vector>
    #include <string>
    using namespace std;
    int main()
    {
        tuple<string, unsigned int, double> Zhouz;
        Zhouz = make_tuple("zz", 24, 60.0);
    
        //或者利用typedef来简化
        typedef tuple<string, unsigned int, double> Human;
    
        Human Yic("zz", 24, 60.0);
    
        vector<Human> vecHuman;
        vecHuman.push_back(Zhouz);
        vecHuman.push_back(Yic);
    
        //获取tuple数据组变量zhouz中的第一个数据名字
        cout<<"姓名:"<<get<0>(Zhouz)<<endl;
    
        get<1>(Zhouz) += 1;
    
        cout<<"年龄:"<<get<1>(Zhouz)<<endl;
    
        cout<<"体重:"<<get<2>(Zhouz)<<endl;
    
        return 0;
    }
    

    二、tuple支持的操作:

    可以通过模板参数的指定定义一个tuple类型的对象。
    也可以方便的使用make_tuple根据传入的对象的类型进行直接的创建。这个函数自然是个模板函数使用了参数的类型推导机制。
    可以通过模板函数get获取tuple对象第i个元素的引用。
    通过两个模板类可以获取tuple对象的元素的个数以及第i个元素的类型。
    通过c++11的decltype可以获取某个tuple对象的实际类型。

    C++ 11中引入的tuple是一个N元组。它相当于有N个成员的结构体,只不过这个结构体的成员都是匿名的。tuple中有两个特殊的函数,一个是head(),用于获取第一个成员的值,另一个是tail(),用于获取剩下所有成员的值,tail()本身又是一个tuple。这样,如果我们想取tuple中第二个成员的值,则可以先取tail()的值,再取tail()的head()的值。当然,这样使用的话比较麻烦,所以C++ 11提供了get函数通过索引来获取tuple中某个成员的值。另外,通过make_tuple可以很方便地构造一个tuple对象。

    三、实现tuple:

    tuple是一个N元组,而N的个数是没有限制的,也就是说,tuple可以包含0个、1个、2个或更多的元素,每个元素的类型则通过模板参数指定。那么,就是通过可变参数模板,可以做到这些。
    虽然tuple已近可以实现不同的数据类型的对象的打包,但是还是不能动态的往里头添加不同的对象,因为这个tuple的类型已近定了无法再给这个对象添加新的成员。

    展开全文
  • Tuple类型

    2013-10-24 16:19:00
    Tuple类型类似的体现了C#中的匿名类型 var person=new { Name="Eric"; Age=18; } 调用: Console.writeline(person.Name+person.Age);...

    Tuple类型类似的体现了C#中的匿名类型

    var person=new {

                                  Name="Eric";

                                  Age=18;

                             }

    调用:

    Console.writeline( person.Name+person.Age);

    以上为C#匿名类的实现

     

    那么这里就可以使用Tuple类来实现了

     

    Tuple<string, int>  Eric =new Tuple<string ,int>("Eric",18);

    调用:

       Console.WriteLine(Eric.Item1+Eric.Item2);

     

     

    转载于:https://www.cnblogs.com/anbylau2130/p/3386302.html

    展开全文
  • 元组tuple类型内置方法元组是不可变的列表,在定义完成后后面就不可以进行更改,因此元组只可取不可存优点:占内存小用途用来存兴许爱好、地名等多个值定义( )中可以放任意类型的数据,值与值之间用都好隔开province...

    元组tuple类型内置方法

    元组是不可变的列表,在定义完成后后面就不可以进行更改,因此元组只可取不可存

    优点:占内存小

    用途

    用来存兴许爱好、地名等多个值

    定义

    ( )中可以放任意类型的数据,值与值之间用都好隔开

    province_name_tuple = ('北京','上海','天津','广州','深圳')

    province_name_tuple1 = tuple(('北京','shanghai','天津',5,'深圳'))

    print(province_name_tuple)

    print(province_name_tuple1)

    ('北京', '上海', '天津', '广州', '深圳')

    ('北京', 'shanghai', '天津', 5, '深圳')

    常用操作+内置方法

    优先掌握

    索引取值

    province_name_tuple= ('北京','上海','天津','广州','深圳')

    # 0 1 2 3 4

    # -5 -4 -3 -2 -1 索引序号

    print(province_name_tuple[2])

    print(province_name_tuple[-3])

    天津

    天津

    切片(顾头不顾尾,步长)

    语法:print(tuple[起始索引:终止索引:步长])

    province_name_tuple = ('北京','上海','天津','广州','深圳')

    print(province_name_tuple[1:4])

    print(province_name_tuple[-2:])

    ('上海', '天津', '广州')

    ('广州', '深圳')

    长度len

    语法:len(tuple)

    province_name_tuple = ('北京','上海','天津','广州','深圳')

    print(len(province_name_tuple))

    5

    成员运算in和not in

    语法:

    print(str1 in tuple)

    print(str2 not in tuple)

    province_name_tuple = ('北京','上海','天津','广州','深圳')

    print('shanghai'in province_name_tuple)

    print('上海'in province_name_tuple)

    False

    True

    循环

    province_name_tuple = ('北京','上海','天津','广州','深圳')

    for i in province_name_tuple:

    print(i)

    北京

    上海

    天津

    广州

    深圳

    count

    语法:tuple.count(object)从元组中数出object的个数

    province_name_tuple = ['北京','上海','天津','广州','上海','深圳','上海']

    print(province_name_tuple.count('上海'))

    3

    index

    语法:tuple.index()返回元组中元素的索引值

    province_name_tuple = ('北京','上海','天津','广州','深圳')

    print(province_name_tuple.index('天津'))

    2

    存一个值or多个值

    多个值

    有序or无序

    有序

    可变or不可变

    因为元组内的值在定义完成后就无法再进行更改,所以是不可变数据类型

    展开全文
  • c++ tuple类型

    千次阅读 2016-04-09 15:58:25
    c++ tuple类型个人笔记 了解tuple: - tuple是模板,tuple所有成员都是public的 - 使用tuple的相关操作,需要包含头文件tuple。 - 希望将数据组合成单一对象时,使用tuple非常有用。(快而随意的数据结构) -...
  • python的List和Tuple类型

    2018-05-18 13:18:26
    python入门基础语法,python的List和Tuple类型知识点及代码举例
  • Scala Tuple类型

    2016-07-09 22:42:00
    Tuple可以作为集合存储不同类型的数据,初始化实例如下: ...Scala函数还可以返回Tuple类型的值,并接收,如: val (first,second,third,forth) = tuple 跟Tuple无关但是挺有意思的东西,顺便...
  • C++笔记 17.1 tuple类型

    2020-09-18 21:02:34
    primer C++笔记 tuple类型 #include 定义和初始化tuple 访问tuple的成员 得到类型名称:typeid(vec).name() 关系和相等运算符 使用tuple可以返回多个值
  • C++中tuple类型

    2018-06-28 14:42:00
    但是每个确定的tuple类型的成员数目是固定的。 1.tuple的简单使用 当我们希望将一些不同类型的数据和成单一对象时,可能大家会想到结构体(类),tuple是一种比结构体来的更加方便的类型tuple的...
  • 创建tupletuple是另一种有序的列表,中文翻译为“元组”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。同样是表示班里同学的名称,用tuple表示如下:>>> t = ('Adam', 'Lisa', 'Bart'...
  • 目录 元组tuple类型内置方法 用途 定义 常用操作+内置方法 优先掌握 存一个值or多个值 有序or无序 可变or不可变 元组tuple类型内置方法 元组是不可变的...
  • Tuple类型的使用

    2016-05-23 19:15:00
    1.什么是Tuple Tuple类型,可以存放任何类型 2.Tuple有哪些分类 .Net 4.0 定义了8个泛型Tuple类,和一个Tuple静态类 3.Tuple的使用 转载于:https://www.cnblogs.com/kimisme/p/5521131.html...
  • Swift中的Tuple类型

    2020-09-06 18:55:00
    Swift中的Tuple类型可以包含任何值,并且这些值的类型可以互相不一样。Tuple本身比较简单,需要记得也就是访问Tuple的方式。 使用变量名访问 let http404Error = (404, "Not Found") // ...
  • 今天来聊聊Python的tuple(元组)类型,如果用一句话概括,那tuple类型就是“只读”的list,因为它有list类型大部分方法和特性。那你可能要问,为什么还要有tuple类型?原因就是正因为它的“只读”特性,在操作速度和...
  • 使用python 写了一个函数,return 了两个返回值比如 return a,b 于是返回的a,b 是tuple类型,比如值是actual。那么,得到a,b分别是actual[0] ,actual[1]这样的。而目前,actual[0]的值是这样的: {“code”:”m0001...
  • 【Python】Python之tuple类型 今天,我们开始学习Python中的另一种类型——tuple类型。tuple是另一种有序的列表,中文翻译为“ 元组 ”,tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。 Python之...
  • 不同tuple类型的成员类型可以不相同,tuple可以有任意数量的成员 每个确定的tuple类型的成员数目是固定的 定义和初始化tuple 注意:第二个为每个成员提供初始值的初始化方式,由于对应的构造函数是explicit的,...
  • 然而我们从数据库或文件读取得来的通常是Python内定的类型tuple或list它们的优势就不说了,但是直接把list或tuple构成的二维数组传入scikit是会出问题的.如:DeprecationWarning: Passing 1d arrays as data is ...
  • 每个确定的tuple类型的成员数目是固定的,但是两个tuple类型的成员数目可以不同。 tuple可以用在将一些数据组合成单一对象,但又不想麻烦的定义一个新数据结构来表示这些数据时。可以将它看做是一个“快速而随意”...
  • Python-List、Tuple类型

    2019-03-16 14:42:07
    List、Tuple类型 List集合类型 Python内置的一种数据类型: list 。list是一种有序的集合,可以添加或删除其中元素。构造 list 使用中括号 [ ] ,用 [ ] 把list所有元素括起来,就是一个list对象,通常会把list赋值...
  • Python数组——ListPython创建listPython内置的一种数据类型是列表:list。list是一种有序的集合,是按照顺序排列的,可以随时添加和删除其中的元素。>>> L = ['Michael', 100, True]>>> print L...
  • 使用pymysql,从mysql查询数据,返回结果是tuple类型 def query_kdata(self,code): if self.connect is None: return None # 得到一个可以执行SQL语句的光标对象 cursor = self.connect.cursor() ...
  • tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了 创建tuple和创建list唯一不同之处是用( )替代了[ ]。 现在,这个t就不能改变了,tuple没有 append()方法,也没有insert()和pop()方法。所以,新同学...
  • Object [] parg = {input , //测试数据 "F:\\shuju\\model.txt... 我把tuple类型的数据input和String类型的数据同时放在object数组中,现在我要用数组中的input,我怎么能把object类型的数据强制转换为tuple类型
  • 一、创建元组:ages = (11, 22, 33, 44, 55)ages = tuple((11, 22, 33, 44, 55))元组和列表几乎一样元组的元素不可修改,但是元组元素的元素是可以修改的tuple(iterable),可以存放所有可迭代的数据类型二、基本操作...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,278
精华内容 6,111
关键字:

tuple类型