最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++中的pair使用詳解

 更新時(shí)間:2022年09月06日 14:55:35   作者:Timingup  
pair是定義在<utility>中的生成特定類型的模板,它的作用是把一組數(shù)據(jù)合并為一體,實(shí)際上是一個(gè)擁有兩個(gè)成員變量的struct,這篇文章主要介紹了c++的pair使用,需要的朋友可以參考下

pair是將2個(gè)數(shù)據(jù)組合成一組數(shù)據(jù),當(dāng)需要這樣的需求時(shí)就可以使用pair,如stl中的map就是將key和value放在一起來保存。另一個(gè)應(yīng)用是,當(dāng)一個(gè)函數(shù)需要返回2個(gè)數(shù)據(jù)的時(shí)候,可以選擇pair。 pair的實(shí)現(xiàn)是一個(gè)結(jié)構(gòu)體,主要的兩個(gè)成員變量是first second 因?yàn)槭鞘褂胹truct不是class,所以可以直接使用pair的成員變量。

下面介紹下C++中的pair使用,內(nèi)容如下所示:

pair基本用法

pair<string, int> p1("hello world", 233);
cout << p1.first << " " << p1.second;

p1 = make_pair("lala", 322);

pair 其他使用

重載pair的加減運(yùn)算符

// 加法
template<class Ty1,class Ty2> 
inline const pair<Ty1,Ty2> operator+(const pair<Ty1, Ty2>&p1, const pair<Ty1, Ty2>&p2)
{
    pair<Ty1, Ty2> ret;
    ret.first = p1.first + p2.first;
    ret.second = p1.second + p2.second;
    return ret;
}

// 減法
template<class Ty1, class Ty2> 
inline const pair<Ty1, Ty2> operator-(const pair<Ty1, Ty2>&p1, const pair<Ty1, Ty2>&p2)
{
    pair<Ty1, Ty2> ret;
    ret.first = p1.first - p2.first;
    ret.second = p1.second - p2.second;
    return ret;
}

在vector中使用

// 初始化舉例
vector<pair<int, int>> dirs = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};

// 添加新元素幾種方式
// make_pair
dirs.push_back(make_pair(2,2));
// 初始化構(gòu)造函數(shù)
dirs.push_back(pair<int, int>(2,2));
// 聚合初始化
dirs.push_back({2,2});
// emplace_back
dirs.emplace_back(2,2);

補(bǔ)充:下面看下c++的pair用法

在實(shí)際的工作中,經(jīng)常需要用到pair的內(nèi)容,然后每次呢,我都會(huì)由于忘記pair怎么用的而需要去百度,我個(gè)人覺得很麻煩,于是想著自己總結(jié)一下,這樣,以后看自己寫的也可以更方便直接一點(diǎn)。
因?yàn)橹饕菍懡o自己看的,所以,我將主要以代碼的形式來展示pair相關(guān)的用法:

#include <iostream>
using namespace std;
int main(){
    std::pair<std::string,int> pr;
    pr.first = "first";
    pr.second = 1;
    std::pair<std::string,int>pr2("second",2);
    std::pair<std::string,int>pr3 = std::make_pair("third",3);
    std::pair<std::string,std::pair<int,float>>pr4=std::make_pair("four",std::make_pair(1,1.0f));

    printf("%-8s:%d\n",pr.first.c_str(),pr.second);
    printf("%-8s:%d\n",pr2.first.c_str(),pr2.second);
    printf("%-8s:%d\n",pr3.first.c_str(),pr3.second);
    printf("%-8s:%d,%.3f\n",pr4.first.c_str(),pr4.second.first,pr4.second.second);

    return 0;
}

輸出結(jié)果如下:

first :1
second :2
third :3
four :1,1.000

到此這篇關(guān)于c++的pair使用詳解的文章就介紹到這了,更多相關(guān)c++ pair使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C/C++實(shí)現(xiàn)磁盤相關(guān)操作的示例代碼

    C/C++實(shí)現(xiàn)磁盤相關(guān)操作的示例代碼

    這篇文章主要為大家詳細(xì)介紹了C/C++如何實(shí)現(xiàn)磁盤相關(guān)操作,例如遍歷磁盤容量、實(shí)現(xiàn)磁盤格式化、移除指定磁盤等,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • C語言順序表的基本結(jié)構(gòu)與實(shí)現(xiàn)思路詳解

    C語言順序表的基本結(jié)構(gòu)與實(shí)現(xiàn)思路詳解

    順序表是用一段物理地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)數(shù)據(jù)元素的線性結(jié)構(gòu),一般情況下采用數(shù)組存儲(chǔ)。本文將通過示例為大家講解一下順序表的基本操作,需要的可以參考一下
    2023-02-02
  • C++簡明講解缺省參數(shù)與函數(shù)重載的用法

    C++簡明講解缺省參數(shù)與函數(shù)重載的用法

    所謂缺省參數(shù),顧名思義,就是在聲明函數(shù)的某個(gè)參數(shù)的時(shí)候?yàn)橹付ㄒ粋€(gè)默認(rèn)值,在調(diào)用該函數(shù)的時(shí)候如果采用該默認(rèn)值,你就無須指定該參數(shù)。C++ 允許多個(gè)函數(shù)擁有相同的名字,只要它們的參數(shù)列表不同就可以,這就是函數(shù)的重載,借助重載,一個(gè)函數(shù)名可以有多種用途
    2022-06-06
  • Qt利用QDrag實(shí)現(xiàn)拖拽拼圖功能詳解

    Qt利用QDrag實(shí)現(xiàn)拖拽拼圖功能詳解

    QDrag類為MIME-based拖拽數(shù)據(jù)轉(zhuǎn)換提供支持。本文為大家主要介紹如何利用QDrag類實(shí)現(xiàn)拖拽拼圖功能。左邊是打散的圖,拖動(dòng)到右邊進(jìn)行復(fù)現(xiàn),此外程序還支持手動(dòng)拖入原圖片,感興趣的可以了解一下
    2022-07-07
  • C++進(jìn)程間共享數(shù)據(jù)實(shí)例

    C++進(jìn)程間共享數(shù)據(jù)實(shí)例

    這篇文章主要介紹了C++進(jìn)程間共享數(shù)據(jù)的方法,是進(jìn)行C++應(yīng)用程序開發(fā)中非常實(shí)用的技巧,需要的朋友可以參考下
    2014-10-10
  • 實(shí)例分享cmake編譯一個(gè)簡單c++項(xiàng)目(demo)

    實(shí)例分享cmake編譯一個(gè)簡單c++項(xiàng)目(demo)

    下面通過一個(gè)小例子來說明cmake編譯一個(gè)c++項(xiàng)目,生成可執(zhí)行文件,需要的朋友可以參考下
    2020-02-02
  • C語言開發(fā)實(shí)現(xiàn)貪吃蛇游戲

    C語言開發(fā)實(shí)現(xiàn)貪吃蛇游戲

    這篇文章主要為大家詳細(xì)介紹了C語言開發(fā)實(shí)現(xiàn)貪吃蛇游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • 在C++中把字符串轉(zhuǎn)換為整數(shù)的兩種簡單方法

    在C++中把字符串轉(zhuǎn)換為整數(shù)的兩種簡單方法

    經(jīng)常會(huì)遇到類型轉(zhuǎn)換,本文主要介紹了C++中把字符串轉(zhuǎn)換為整數(shù)的兩種簡單方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 利用C++制作人生模擬器游戲的示例代碼

    利用C++制作人生模擬器游戲的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C++制作一個(gè)當(dāng)下很火的人生模擬器游戲,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-05-05
  • C++輸入輸出重定向方法示例

    C++輸入輸出重定向方法示例

    這篇文章主要給大家介紹了關(guān)于C++輸入輸出重定向的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09

最新評論

武威市| 西昌市| 伊宁县| 鄂温| 海阳市| 黄浦区| 类乌齐县| 遵化市| 万山特区| 宁海县| 西宁市| 明水县| 郸城县| 天柱县| 杭州市| 抚松县| 米泉市| 微博| 通化市| 张家港市| 广州市| 化州市| 天台县| 漠河县| 讷河市| 香港| 潼南县| 新田县| 巴彦县| 江永县| 夏邑县| 株洲市| 兴安盟| 南康市| 汝南县| 英超| 定兴县| 大埔区| 开封县| 原阳县| 明星|