C++ STL Pair
生活随笔
收集整理的這篇文章主要介紹了
C++ STL 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對象的操作
?
- 對于pair類,由于它只有兩個元素,分別名為first和second,因此直接使用普通的點操作符即可訪問其成員
pair<string, string> a("Lily", "Poly");?
string name;
name = pair.second;
- 生成新的pair對象
可以使用make_pair對已存在的兩個數據構造一個新的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} 其運行結果如下: 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 結合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; 小結: make_pair創建的是一個pair對象。使用都很方便,針對成對出現的數據,如書的ISBN對應一個書名。 pair是單個數據對的操作,pair是一struct類型,有兩個成員變量,通過first,second來訪問,用的是“.”訪問。 map是一個關聯容器,里面存放的是鍵值對,容器中每一元素都是pair類型,通過map的insert()方法來插入元素(pair類型)。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的C++ STL Pair的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一个字符串中连续出现次数最多的子串
- 下一篇: 在数组中找出3个数使得它们和为0