C++ pair方法/vector方法


一,pair方法

類模板:template <class T1, class T2> struct pair

參數:T1是第一個值的數據類型,T2是第二個值的數據類型。

功能:pair將一對值組合成一個值,這一對值可以具有不同的數據類型(T1和T2),兩個值可以分別用pair的兩個公有函數first和second訪問。

具體用法:

訪問兩個元素(通過firstsecond):

1     pair<int, double> p1;  //使用默認構造函數
2     p1.first = 1;
3     p1.second = 2.5;
4     cout << p1.first << ' ' << p1.second << endl;

輸出結果:1 2.5

賦值operator = :

 1)利用make_pair

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

2)變量間賦值:

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

 

二,vector方法

vector方向需要頭函數#include<vector>

向量(Vector)是一個封裝了動態大小數組的順序容器(Sequence Container)。跟任意其它類型容器一樣,它能夠存放各種類型的對象。可以簡單的認為,向量是一個能夠存放任意類型的動態數組。

1.構造函數

  • vector():創建一個空vector
  • vector(int nSize):創建一個vector,元素個數為nSize
  • vector(int nSize,const t& t):創建一個vector,元素個數為nSize,且值均為t
  • vector(const vector&):復制構造函數
  • vector(begin,end):復制[begin,end)區間內另一個數組的元素到vector中

2.增加函數

  • void push_back(const T& x):向量尾部增加一個元素X
  • iterator insert(iterator it,const T& x):向量中迭代器指向元素前增加一個元素x
  • iterator insert(iterator it,int n,const T& x):向量中迭代器指向元素前增加n個相同的元素x
  • iterator insert(iterator it,const_iterator first,const_iterator last):向量中迭代器指向元素前插入另一個相同類型向量的[first,last)間的數據

3.刪除函數

  • iterator erase(iterator it):刪除向量中迭代器指向元素
  • iterator erase(iterator first,iterator last):刪除向量中[first,last)中元素
  • void pop_back():刪除向量中最后一個元素
  • void clear():清空向量中所有元素

4.遍歷函數

  • reference at(int pos):返回pos位置元素的引用
  • reference front():返回首元素的引用
  • reference back():返回尾元素的引用
  • iterator begin():返回向量頭指針,指向第一個元素
  • iterator end():返回向量尾指針,指向向量最后一個元素的下一個位置
  • reverse_iterator rbegin():反向迭代器,指向最后一個元素
  • reverse_iterator rend():反向迭代器,指向第一個元素之前的位置

5.判斷函數

  • bool empty() const:判斷向量是否為空,若為空,則向量中無元素

6.大小函數

  • int size() const:返回向量中元素的個數
  • int capacity() const:返回當前向量張紅所能容納的最大元素值
  • int max_size() const:返回最大可允許的vector元素數量值

7.其他函數

  • void swap(vector&):交換兩個同類型向量的數據
  • void assign(int n,const T& x):設置向量中第n個元素的值為x
  • void assign(const_iterator first,const_iterator last):向量中[first,last)中元素設置成當前向量元素

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM