当前位置: 首页 > 编程笔记 >

谈谈C++学习之Pair的使用方法

赫连越
2023-03-14
本文向大家介绍谈谈C++学习之Pair的使用方法,包括了谈谈C++学习之Pair的使用方法的使用技巧和注意事项,需要的朋友参考一下

一、Pair类型概述

pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下:

pair<int, string> a;

表示a中有两个类型,第一个元素是int型的,第二个元素是string类型的,如果创建pair的时候没有对其进行初始化,则调用默认构造函数对其初始化。

pair<string, string> a("James", "Joy");

也可以像上面一样在定义的时候直接对其初始化。

由于pair类型的使用比较繁琐,因为如果要定义多个形同的pair类型的时候,可以时候typedef简化声明:

typedef pair<string, string> author;
author pro("May", "Lily");
author joye("James", "Joyce");

Pair对象的操作

1、对于pair类,由于它只有两个元素,分别名为first和second,因此直接使用普通的点操作符即可访问其成员

pair<string, string> a("Lily", "Poly"); 
string name;
name = pair.second;

2、生成新的pair对象

可以使用make_pair对已存在的两个数据构造一个新的pair类型:

int a = 8;
string m = "James";
pair<int, string> newone;
newone = make_pair(a, m);

三、编程实践

练习:编写程序读入一系列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;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍浅谈MyBatis-Plus学习之Oracle的主键Sequence设置的方法,包括了浅谈MyBatis-Plus学习之Oracle的主键Sequence设置的方法的使用技巧和注意事项,需要的朋友参考一下 一、Oracle的主键Sequence设置简介 在Oracle数据库中不支持主键自增策略,它是通过Sequence序列来进行完成的,因此需要在MP中进行相关配置 二、相关配置如下

  • 本文向大家介绍简单谈谈ThreadPoolExecutor线程池之submit方法,包括了简单谈谈ThreadPoolExecutor线程池之submit方法的使用技巧和注意事项,需要的朋友参考一下 jdk1.7.0_79 在上一篇《ThreadPoolExecutor线程池原理及其execute方法》中提到了线程池ThreadPoolExecutor的原理以及它的execute方法。本文解析Th

  • 有一些非技术问题想问问各位大佬,就是发现在开发中用不到的技术,经常都是不知道的,更谈不上去了解了,但是发现有些朋友似乎无论什么技术他都可以侃侃而谈。 我想法问问是怎么做到的?似乎在工作中用不到的,自己也无法提出业务需求,然后就一直困在工作的一亩三分地里面,但是有些朋友看他们连某个插件更新了几个版本每个版本更新了什么都清清楚楚的,是怎么做到的? 十分诚恳地询问。

  • 本文向大家介绍浅谈C++中replace()方法,包括了浅谈C++中replace()方法的使用技巧和注意事项,需要的朋友参考一下 本文主要针对c++中常用replace函数用法给出九个样例程序: 用法一:  运行结果: 用法二:  运行结果: 用法三:  运行结果: 用法四:string转char*时编译器可能会报出警告,不建议这样做  运行结果: 用法五:string转char*时编译器可能会

  • 本文向大家介绍谈谈java的concurrent用法,包括了谈谈java的concurrent用法的使用技巧和注意事项,需要的朋友参考一下 我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,当然也有一些开源的框架提供了这些功能,但是这些依然没有JDK自带的功能使用起来方便。而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用jav

  • 本文向大家介绍浅谈Django学习migrate和makemigrations的差别,包括了浅谈Django学习migrate和makemigrations的差别的使用技巧和注意事项,需要的朋友参考一下 本文主要研究的是Django中migrate和makemigrations的差别,具体如下。 在你改动了 model.py的内容之后执行下面的命令: Python manger.py makemi