zoukankan      html  css  js  c++  java
  • C++中pair的用法

    C++pair类型:

    标准库类型--pair类型定义在utility头文件中定义:

    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) {
        //...
    }
     1 #include<iostream>
     2 #include<string>
     3 #include<vector>
     4 #include<utility>
     5 using namespace std;
     6  
     7 int main()
     8 {
     9     pair<string, int>p;
    10     typedef vector< pair<string, int> > VP;
    11     VP vp;
    12     for (int i = 0; i < 5; i++) {
    13         cin >> p.first >> p.second;
    14         vp.push_back(make_pair(p.first, p.second));
    15     }
    16     VP::iterator it;
    17     for (it = vp.begin(); it != vp.end(); it++)
    18         cout << it->first << "," << it->second << endl;
    19     system("pause");
    20     return 0;
    21 }
  • 相关阅读:
    asp.net大文件断点续传
    JS大文件上传解决方案
    B/S大文件上传解决方案
    B/S上传整个文件夹
    网页上传整个文件夹
    POJ 1068 Parencodings
    74LS85 比較器 【数字电路】
    二叉树的建立与先序,后序,中序输出
    Android 学习之 开源项目PullToRefresh的使用
    理解矩阵及谱聚类小记
  • 原文地址:https://www.cnblogs.com/nilbook/p/13915915.html
Copyright © 2011-2022 走看看