通用常见工具汇总<Pair,Tuple,>.
来源:互联网 发布:洋葱英语软件 编辑:程序博客网 时间:2024/06/16 12:32
目录:
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;}
2.Tuple类型<不定数数组>
tuple是C++11新标准里的类型。它是一个类似pair类型的模板。pair类型是每个成员变量各自可以是任意类型,但是只能有俩个成员,而tuple与pair不同的是它可以有任意数量的成员。但是每个确定的tuple类型的成员数目是固定的
当我们希望将一些不同类型的数据和成单一对象时,可能大家会想到结构体(类),tuple是一种比结构体来的更加方便的类型
tuple的简单使用实例
- 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
原文转载自:http://blog.csdn.net/shreck66/article/details/48243447
- 通用常见工具汇总<Pair,Tuple,>.
- 九、 通用工具 ----pair 和Tuple---pair
- 九、 通用工具 ----pair 和Tuple---Tuple
- 通用工具pair
- pair&tuple
- STL概览-通用工具pair,auto_ptr,std::rel_ops(二)
- 转】STL摘要一:通用工具(pair,auto_ptr,std::rel_ops)
- STL概览-通用工具pair,auto_ptr,std::rel_ops
- C++ std::pair, std::tuple
- 常见通用编译调试问题汇总
- Android常见工具类汇总
- JavaScript进阶(三)常见工具(校验、通用)
- C#元组 Pair Triplet Tuple
- c++ pair和tuple的操作
- 通用工具Utilities(三)----定义于utility中的pair和辅助性的比较操作符
- 常见功能自动化测试工具汇总
- Boost源码剖析之:增强的std::pair--Tuple Types
- c++标准库——pair和tuple
- RTSP/RTP/RTCP详解整理
- C++输入输出流
- MySQL 大表优化方案
- Leetcode Populating Next Right Pointers in Each Node
- SpringMVC 拦截器 详解
- 通用常见工具汇总<Pair,Tuple,>.
- Gym Class HDU
- PHP编码规范
- 云笔记项目 Unit06
- java:程序包XXXX不存在
- OpenSIPS+FreeSWITCH负载均衡+NAT+黑名单
- MySQL ODBC驱动安装和配置数据源
- 容器对路径的处理 、 Servlet特性
- 【OpenGL】OpenGL基本库,OpenGL实用库及OpenGL实用函数工具包之间的差别