日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ STL Pair

發(fā)布時間:2025/4/14 c/c++ 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ STL Pair 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Pair類型概述

pair是一種模板類型,其中包含兩個數(shù)據(jù)值,兩個數(shù)據(jù)的類型可以不同,基本的定義如下:

?

pair<int, string> a;

表示a中有兩個類型,第一個元素是int型的,第二個元素是string類型的,如果創(chuàng)建pair的時候沒有對其進行初始化,則調(diào)用默認構(gòu)造函數(shù)對其初始化。

?

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

也可以像上面一樣在定義的時候直接對其初始化。

?

由于pair類型的使用比較繁瑣,因為如果要定義多個形同的pair類型的時候,可以時候typedef簡化聲明:

typedef pair<string, string> author;

author pro("May", "Lily");

author joye("James", "Joyce");

?

?

Pair對象的操作

?

  • 于pair類,由于它只有兩個元素,分別名為first和second,因此直接使用普通的點操作符即可訪問其成員

pair<string, string> a("Lily", "Poly");?

string name;

name = pair.second;

  • 生成新的pair對象

可以使用make_pair對已存在的兩個數(shù)據(jù)構(gòu)造一個新的pair類型:

int a = 8;

string m = "James";

pair<int, string> newone;

newone = make_pair(a, m);

?

1#include <iostream> 2#include <utility> 3#include <string> 4usingnamespace std; 5 6int main () { 7pair <string,double> product1 ("tomatoes",3.25); 8pair <string,double> product2; 9pair <string,double> product3; 10 11product2.first ="lightbulbs"; // type of first is string 12product2.second =0.99; // type of second is double 13 14product3 = make_pair ("shoes",20.0); 15 16cout <<"The price of "<< product1.first <<" is $"<< product1.second <<"\n"; 17cout <<"The price of "<< product2.first <<" is $"<< product2.second <<"\n"; 18cout <<"The price of "<< product3.first <<" is $"<< product3.second <<"\n"; 19return0; 20} 其運行結(jié)果如下: 1The price of tomatoes is $3.25 2The price of lightbulbs is $0.99 3The price of shoes is $20




01 pair ?vs ?make_pair 02 make_pair constructs a pair object. 03 template 04 pair make_pair(T1 x, T2 y) 05 { 06 ????return pair(x, y); 07 } 08 09 eg: ?std::pair("sn001", 12.5); 10 ???????std::make_pair("sn001", 12.5); 11 ???????兩者效果一樣。 12 倘若:std::pair("sn002", 12.6); ??// 12.6's datatype is float 13 ????????std::make_pair("sn002",12.6); ?// 12.6's datatype is double 14 使用: 15 ????????std::pair m_pairA; 16 ????????m_pairA = std::make_pair("sn001", 12.5); 17 ????????std::cout<<m_pairA.first<<" ?"<<m_pairA.second<<std::endl; 18 結(jié)合map的簡單使用: 19 ????????std::pair m_pairA; 20 ????????m_pairA = std::make_pair("sn001", 12.5); 21 ????????//std::cout<<m_pairA.first<<" ?"<<m_pairA.second<<std::endl; 22 ????????std::map m_mapA; 23 ????????m_mapA.insert(m_pairA); 24 ????????std::map::iterator iter = m_mapA.begin(); 25 ????????std::cout<<iter->first<<" ?"<<iter->second<<std::endl; 小結(jié):   make_pair創(chuàng)建的是一個pair對象。使用都很方便,針對成對出現(xiàn)的數(shù)據(jù),如書的ISBN對應(yīng)一個書名。   pair是單個數(shù)據(jù)對的操作,pair是一struct類型,有兩個成員變量,通過first,second來訪問,用的是“.”訪問。   map是一個關(guān)聯(lián)容器,里面存放的是鍵值對,容器中每一元素都是pair類型,通過map的insert()方法來插入元素(pair類型)。

《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的C++ STL Pair的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。