通用常见工具汇总<Pair,Tuple,>.
2017-07-05 09:03
288 查看
目录:
1.Pair类型
2.Tuple类型<不定数数组>
1.Pair类型
标准库类型--pair类型定义在utility头文件中定义
本文地址:http://www.cnblogs.com/archimedes/p/cpp-pair.html,转载请注明源地址。
pair包含两个数值,与容器一样,pair也是一种模板类型。但是又与之前介绍的容器不同,在创建pair对象时,必须提供两个类型名,两个对应的类型名的类型不必相同
当然也可以在定义时为每个成员提供初始化式:
pair类型的使用相当的繁琐,如果定义多个相同的pair类型对象,可以使用typedef简化声明:
对于pair类,可以直接访问其数据成员:其成员都是公有的,分别命名为first和second,只需要使用普通的点操作符
除了构造函数,标准库还定义了一个make_pair函数,由传递给它的两个实参生成一个新的pair对象
还可以用下列等价的更复杂的操作:
由于pair的数据成员是公有的,因而可如下直接地读取输入:
练习:编写程序读入一系列string和int型数据,将每一组存储在一个pair对象中,然后将这些pair对象存储在vector容器
原文转载自:http://www.cnblogs.com/wuyudong/p/cpp-pair.html
2.Tuple类型<不定数数组>
tuple是C++11新标准里的类型。它是一个类似pair类型的模板。pair类型是每个成员变量各自可以是任意类型,但是只能有俩个成员,而tuple与pair不同的是它可以有任意数量的成员。但是每个确定的tuple类型的成员数目是固定的
当我们希望将一些不同类型的数据和成单一对象时,可能大家会想到结构体(类),tuple是一种比结构体来的更加方便的类型
tuple的简单使用实例
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
原文转载自:http://blog.csdn.net/shreck66/article/details/48243447
1.Pair类型
2.Tuple类型<不定数数组>
1.Pair类型
标准库类型--pair类型定义在utility头文件中定义
本文地址:http://www.cnblogs.com/archimedes/p/cpp-pair.html,转载请注明源地址。
1、pair的创建和初始化
pair包含两个数值,与容器一样,pair也是一种模板类型。但是又与之前介绍的容器不同,在创建pair对象时,必须提供两个类型名,两个对应的类型名的类型不必相同pair<string,string>anon; pair<string,int>word_count; pair<string, vector<int> >line;
当然也可以在定义时为每个成员提供初始化式:
pair<string,string>author("James","Joy");
pair类型的使用相当的繁琐,如果定义多个相同的pair类型对象,可以使用typedef简化声明:
typedef pair<string,string> Author; Author proust("March","Proust"); Author Joy("James","Joy");
2、pair对象的操作
对于pair类,可以直接访问其数据成员:其成员都是公有的,分别命名为first和second,只需要使用普通的点操作符string firstBook; if(author.first=="James" && author.second=="Joy") firstBook="Stephen Hero";
3、生成新的pair对象
除了构造函数,标准库还定义了一个make_pair函数,由传递给它的两个实参生成一个新的pair对象pair<string, string> next_auth; string first,last; while(cin>>first>>last) { next_auth=make_pair(first,last); //... }
还可以用下列等价的更复杂的操作:
next_auth=pair<string,string>(first,last);
由于pair的数据成员是公有的,因而可如下直接地读取输入:
pair<string, string> next_auth; while(cin>>next_auth.first>>next_auth.last) { //... }
4、编程实践
练习:编写程序读入一系列string和int型数据,将每一组存储在一个pair对象中,然后将这些pair对象存储在vector容器#include<iostream> #include<string> #include<vector> #include<utility> using namespace std; int main() { pair<string, int>p; typedef vector< pair<string, int> > VP; VP vp; while(cin>>p.first>>p.second) { vp.push_back(make_pair(p.first,p.second)); } VP::iterator it; for(it=vp.begin(); it!=vp.end(); it++) cout<<it->first<<","<<it->second<<endl; return 0; }
原文转载自:http://www.cnblogs.com/wuyudong/p/cpp-pair.html
2.Tuple类型<不定数数组>
tuple是C++11新标准里的类型。它是一个类似pair类型的模板。pair类型是每个成员变量各自可以是任意类型,但是只能有俩个成员,而tuple与pair不同的是它可以有任意数量的成员。但是每个确定的tuple类型的成员数目是固定的
当我们希望将一些不同类型的数据和成单一对象时,可能大家会想到结构体(类),tuple是一种比结构体来的更加方便的类型
tuple的简单使用实例
#include<iostream> //定义在此头文件下 #include<tuple> using namespace std; int main(void) { tuple<int,int,float> tp(1,2,3.1); cout<<"第一个元素为:"<<get<0>(tp)<<endl; cout<<"第二个元素为:"<<get<1>(tp)<<endl; cout<<"第三个元素为:"<<get<2>(tp)<<endl; return 0; }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
操作 | 说明 |
---|---|
make_tuple(v1,v2,v3,v4…vn) | 返回一个给定初始值初始化的tuple,类型从初始值推断 |
t1 == t2 | 当俩个tuple具有相同数量的成员且成员对应相等时 |
t1 != t2 | 与上一个相反 |
get(t) | 返回t的第i个数据成员 |
tuple_size::value | 给定了tuple中成员的数量 |
相关文章推荐
- 机器学习常见算法分类汇总<转>
- C#路径/文件/目录/I/O常见操作汇总<转载>
- jsp web常见问题汇总<一>
- 九、 通用工具 ----pair 和Tuple---Tuple
- List<T>集合转换为EasyUI TreeGrid所需要的Json格式通用工具
- 【C】初学习之库函数——通用的实用工具<stdlib.h>之伪随机序列生成函数
- List<T>集合转换为EasyUI TreeGrid所需要的Json格式通用工具
- 九、 通用工具 ----class ratio<>
- 九、 通用工具 ----pair 和Tuple---pair
- 头文件<cstddef>和<cstdlib>_通用工具_STL
- <转>全球100款大数据工具汇总
- 每个开发人员现在应该下载的十种必备工具<转>
- 15款提高效率的Windows辅助工具<上>
- 面向对象系统分析与开发专题<2>__面向对象方法与工具
- <精华问题汇总>IBM虚拟化与云计算常见问题解答
- LoadRunner脚本录制常见问题整理<转>
- <STL> pair随笔
- 机器学习的开源工具<转载>