C++_pair

简介: pair是将2个数据组合成一组数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。pair的实现是一个结构体,主要的两个成员变量是first second 因为是使用struct不是class,所以可以直接使用pair的成员变量。就算其他的语言中没有pair,比如java与c语言,也可以自己理解原理之后,通过结构体自己做一个。

C++_pair

简介:pair是将2个数据组合成一组数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。 pair的实现是一个结构体,主要的两个成员变量是first second 因为是使用struct不是class,所以可以直接使用pair的成员变量。

就算其他的语言中没有pair,比如java与c语言,也可以自己理解原理之后,通过结构体自己做一个。

定义方法

#include <iostream>

using namespace std;

int main()
{
    pair<char ,int> p; // pair<T, T>定义看起来很简单,T代表的是通用模板类,可以是char,int,string,vector<int>等等
    p = {'c', 330}; // 给pair赋值的方法
    cout << p.first << " " << p.second; // pair有两个成员变量,first与second
    return 0;
}

运行结果
在这里插入图片描述

特殊例子

#include <iostream>
#include<vector>
using namespace std;

int main()
{
    pair<string, vector<int> > p;
    vector<int> v(10, 1);
    p = {"123", v};
    cout << p.first << endl;
    // 如果pair中的一个参数是容器,应该怎么访问
    for (int i = 0; i < p.second.size(); ++ i)
    {
        cout << p.second[i]<< endl;
    }
    return 0;
}

运行结果
在这里插入图片描述

自定义pair

#include <iostream>
#include<vector>
using namespace std;

template<class K, class T>
class Pair{
    public:
        // 有参数和无参构造方法都要写
        Pair(){
        }
    public:
        T first;

    public:
        T second;
};

int main()
{
    Pair<int, int> p;
    p.first = 1;
    p.second = 2;
    cout << p.first << " " << p.second << endl;
    return 0;
}

运行结果
在这里插入图片描述

相关文章
|
2月前
|
存储 搜索推荐 C++
【C++修行之道】STL(初识pair、vector)
【C++修行之道】STL(初识pair、vector)
|
7天前
|
存储 搜索推荐 C++
【C++高阶(二)】熟悉STL中的map和set --了解KV模型和pair结构
【C++高阶(二)】熟悉STL中的map和set --了解KV模型和pair结构
|
23天前
|
C++ 容器
C++入门到理解set/multiset容器、pair对组
C++入门到理解set/multiset容器、pair对组
C++入门到理解set/multiset容器、pair对组
|
11月前
|
C++ Python 容器
C++中pair用法
⭐pair的简介 pair是C++STL(标准模板库)中的一个现有容器,它将2个数据整合成一组数据,当我们类似需求的时候就可以使用到pair啦!pair其实有点像Python中字典中的键值对(Key-Value),一个Key对应着一个Value。pair的本质其实就是个结构体,它含有两个成员变量first和second。因为使用的是struct不是class,所以在定义后是可以直接使用pair中的成员变量的。 其标准库类型–pair类型定义在#include< utility > 头文件中
216 0
|
21小时前
|
编译器 C语言 C++
c++初阶------类和对象(六大默认构造函数的揭破)-3
c++初阶------类和对象(六大默认构造函数的揭破)
|
21小时前
|
编译器 C语言 C++
c++初阶------类和对象(六大默认构造函数的揭破)-2
c++初阶------类和对象(六大默认构造函数的揭破)
|
21小时前
|
存储 编译器 C语言
c++初阶------类和对象(六大默认构造函数的揭破)-1
c++初阶------类和对象(六大默认构造函数的揭破)
|
22小时前
|
存储 编译器 C语言
c++初阶-------类和对象-2
c++初阶-------类和对象