1. 程式人生 > >C++之(pair)用法總結

C++之(pair)用法總結

pair函式:
類模板:
template <class T1, class T2> struct pair
引數:class T1是第一個值的資料型別,class T2是第二個值的資料型別。
功能:pair將一對值(可以是不同的資料型別)組合成一個值,兩個值可以分別用pair的兩個公有函式first和second訪問。
具體用法:
1、定義

pair<int,string>p1;
//使用預設建構函式
pair<int,double>p2(1,2.4);
//用給定值初始化
pair<int,double>p3(p2);
//拷貝建構函式

2、通過pair的兩個公有函式first和second訪問兩個元素

pair<int,double>p1;
p1.first=1;
p1.second=2.4;
cout<<p1.first<<endl;

3、賦值
①make_pair

pair<int,double>p1;
p1=make_pair(1,2.4);

②變數間賦值

pair<int ,double>p1(1,2.4);
pair<int,double>p2=p1;

③生成新的pair物件
可以使用make_pair對已存在的兩個資料構造一個新的pair型別:

int a=1;
string b="sddgds";
pair<int ,string>c;
c=make_pair(a,b);

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");

相關推薦

C++pair用法總結

pair函式: 類模板: template <class T1, class T2> struct pair 引數:class T1是第一個值的資料型別,class T2是第二個值的資料型別。 功能:pair將一對值(可以是不同的資料型別)組

C# Dictionary集合用法總結

1、用法1: 常規用   增加鍵值對之前需要判斷是否存在該鍵,如果已經存在該鍵而且不判斷,將丟擲異常。所以這樣每次都要進行判斷,很麻煩,在備註裡使用了一個擴充套件方法    public st

C#列舉使用總結以及擴充套件類分享

## 0.介紹 > 列舉是一組命名常量,其基礎型別為任意整型。 如果沒有顯式宣告基礎型別, 則為Int32 在實際開發過程中,列舉的使用可以讓程式碼更加清晰且優雅。 最近在對列舉的使用進行了一些總結與整理,也發現了一些很有意思的知識盲區。 接下來先簡單為大家介紹列舉在開發過程中的常用內容以及擴充套

linux下C程式設計 void用法總結

這次對void差不多有點多少的理解了,從最初的理解就是空,麼有的意思。首先void是C語言中的關鍵字,對函式返回值的限定,對函式引數的限定。 1.void*常常被稱為空指標,其實理解為指向任意型別的指標比較合適,as we all kown,如果指標p1和指標p2的型別相同

C# 哈希表Hashtable用法筆記

timestamp remove 空間 方法 generic alt dsi 項目 bool 一、什麽是Hashtable? Hashtable 類代表了一系列基於鍵的哈希代碼組織起來的鍵/值對。它使用鍵來訪問集合中的元素。 當您使用鍵訪問元素時,則使用哈希表,而且

C++學習Visual Studio寫system語句 生成可執行文件

屬性 默認 右鍵 同學 文件夾 開發 源代碼 學習 http system命令 1、首先先介紹一些system命令 windows+tab //切換窗口 windows+R //調出命令窗口 命令: 輸入 calc 打開計算機 輸入 cmd 打開命令窗口 輸入 msp

C++學習 基本數據類型

大成 double mini png 滿足 const case bit 普通 基本數據類型 上期回顧 stdlib.h system,命令release MT導入ico文件 基本數據類型 整數 int浮點型(小數 實型) float double字符型 ch

C++學習 輸出

分享 2.3 span pri hello 2.4 小數位 bubuko 整型 輸出學習時的筆記(其實也沒什麽用,留著給自己看的) printf 用於輸出內容 控制臺黑窗口printf("要輸出的內容"); //可以是任意內容-->如果要輸出變量 1、格式占

C++學習 項目 推箱子遊戲

bgm 控制臺 兩個 分享 加載圖片 eat gethwnd put init 遊戲制作 推箱子 步驟分析 1、模板 2、模板分析 組成元素: 空地 墻 人 目的地 箱子 背景 3、如何操作 通過WASD鍵盤操作人,推著箱子,到達目

C++string字串總結

string是在C++標準模板庫中的資料型別,string型別的物件用來存放字串,且不用擔心字串越界問題,標頭檔案為<string> 1、定義string物件 string 變數名;  (1) string s1,s2;  //定義物件s1

手把手教你做一個 C 語言編譯器9總結

恭喜你完成了自己的 C 語言編譯器,本章中我們發一發牢騷,說一說編寫編譯器值得注意的一些問題;編寫編譯器時遇到的一些難題。 本系列: 虛擬機器與目的碼 整個系列的一開始,我們就著手虛擬機器的實現。不知道你是否有同感,這部分對於整個編譯器的編寫其實是十分重要的。我認

排序系列4希爾排序及C語言實現

希爾排序(Shell Sort)也稱為遞減增量排序演算法,是插入排序的一種高速而安定的改良版。因希爾(Donald L. Shell)於1959年提出而得名。各種實現在如何進行遞減上有所不同。 希爾排序是基於插入排序的以下兩點性質而提出改進方法的: 插入排序在對幾乎已經排好序的資料操作時, 效率高, 即可以達

python-opencv函式總結threshold、adaptiveThreshold、Otsu 二值化

作為一個懶癌晚期患者,一遍遍翻官方文件真是種折磨,遂將寫小程式時碰到的一些不熟悉的函式及其用法記錄下來。可能沒有什麼條理性,因為是記錄的是在寫得時候隨機遇到自己不大熟悉的函式,見諒。 threshold:固定閾值二值化, ret, dst = c

迴圈冗餘校驗碼CRC應用總結(包括C++原始碼)

 最近在實習期間需要用到資料的校驗,所選為CRC16,那麼就在此總結一番吧。 現在此說明下什麼是CRC:迴圈冗餘碼校驗 英文名稱為Cyclical Redundancy Check,簡稱CRC,它是利用除法及餘數的原理來作錯誤偵測(Error Detecting)的。實際應

linux C程式設計gcc的用法

C/C++的編譯環境:make工具,編譯器gcc,偵錯程式gdb,C/C++標準庫。常用庫資訊列表build-essential包含gcc,g++,make,libc6-dev等寫程式時基本會用到的工具,因此只安裝build-essential,gcc,make等工具也會自動安裝。不清楚的話全部都a

C++學習0vector

C++小白在學習leetcode時遇到的問題 vector是什麼? vector是一種包含相同資料型別的物件的一種容器(或集合,是一種標準庫)。vector物件能高效增長。 1、vector建立 vector<資料型別> v1(v1為物件名稱)。 例如:vect

排序系列1歸併排序及C語言實現

有很多演算法在結構上是遞迴的:為了解決一個給定的問題,演算法需要一次或多次遞迴的呼叫其本身來解決相關的問題。這些演算法通常採用分治策略:將原問題劃分成n個規模較小而結構與原問題相似的子問題;遞迴的解決這些子問題,然後將結果合併,就能得到原問題的解。 分治模式在遞迴時一般都有三

Hessian學習:簡單測試 + C#呼叫Java服務

開始調研Hessian和Mina,目的是希望能夠建立一個簡單的“高效能分散式服務呼叫框架”!類似於Dubbo或者淘寶的HSF那種,但是是要跨平臺的,而不僅僅侷限在Java領域。 hessian是一種遠端呼叫的機制(RPC) ,類似於web service,不過它是使用自己

c++11學習筆記iostream緩衝區

c++ primer 5 中page 23頁中術語表中緩衝區(buffer)概念不是很清楚。故終結如下 緩衝區(buffer)一個儲存區域,用於儲存資料。IO裝置通常將輸入/輸出資料儲存在一個緩衝區中,讀寫緩衝區的動作通常與程式中的動作是無關的。我們可以顯示的重新整理輸出緩

人臉識別人臉檢測--adaboost總結,整理

20170706新增: 各種Adaboost variants的比較以及不均衡問題 1.這邊有個淺顯的解釋。 2.簡單解釋到程式碼實現。 3.相對來說,這個看起來不是個人總結。 4.手動C程式碼Adaboost + stump弱