【16】Tuple(元组)库

【1】Tuple库

【1.1】Tuple介绍

tuple是C++11新标准里的类型。它是一个类似pair类型的模板。pair类型是每个成员变量各自可以是任意类型,但是只能有俩个成员,而tuple与pair不同的是它可以有任意数量的成员。但是每个确定的tuple类型的成员数目是固定的。

【1.2】Tuple特点

  • tuple是模板,tuple所有成员都是public的
  • 使用tuple的相关操作,需要包含头文件。(#include<tuple>)
  • 希望将数据组合成单一对象时,使用tuple非常有用。(快而随意的数据结构)
  • 一个tuple可以有任意数量的成员,tuple的成员类型也不相同。
  • 一个确定的tuple类型的成员数目是固定的,意味着不能有添加和删除能够改变成员数目的操作。
  • 条件:只有2个tuple具有相同数量的成员,才可以比较。比较时,每对成员必须是合法的,简单来说就是2个tuple成员类型应该相同。
  • 高级用法:从函数返回多个值。由于tuple定义了<和==运算符,因此还可以将tuple序列传递给算法,并且可以在无序容器中将tuple作为关键字类型。

【1.3】定义和初始化

初始化

tuple<int,float,size_t> threet; 

tuple<string,vector<double>,int,list<int>> someVal("tuple",{2.14,3.15},100,{1,2,3})

容器大小

auto sz = tuple_size<decltype(itme)>::value;//sz为3

【1.4】实例代码

// Type_tuple.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include "pch.h"
#include <iostream>
#include<tuple>
#include<vector>

using namespace std;

tuple<int, vector<int>, char> backnumber1();
pair<int,  char> backnumber2();
void main1()
{
	vector<int> my_vector;
	my_vector.push_back(1);
	my_vector.push_back(12);
	my_vector.push_back(21);
	char str= 'd';
	tuple<int, vector<int>, char> mytuple{2,my_vector ,str };
	//访问元素
	auto number = get<1>(mytuple);//访问tuple中的第一个元素
	for (size_t i = 0; i < number.size(); i++)
	{
		cout << number[i] << endl;	
	}	   
	//decltype确定一个对象的类型别名
	typedef decltype(mytuple) trans;
	auto sz = tuple_size<trans> ::value;
	cout << sz << endl;
	cin.get();
}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值