1. 程式人生 > 實用技巧 >【C++】STL容器

【C++】STL容器

STL容器

標籤:c++


[TOC]

容器的成員函式

所有容器都有的

int size()bool empty()

順序容器和關聯容器

begin()end()rbegin()rend()erase()clear()

順序容器(vector/string/list/deque)

front()back()push_back()pop_back()insert()

容器

vector

建構函式

vector() 無參建構函式

vector(int n) 初始化有n個元素

vector(int n, const T &val) 初始化為n個val

vector(iterator first, iterator last)

初始化為區間$[first, last)$的內容

操作

clear()/empty()/pop_back()/push_back()/size()

front()/back()

insert()

  1. insert(iterator i, const T &val)
  2. insert(iterator i, iterator first, iterator last)

erase()

  1. erase(iterator i)
  2. erase(iterator first, iterator last)

set/multiset

iterator find(const T &val)

iterator insert(const T &val)

iterator insert(iterator first, iterator last)

int count(const T &val)

iterator lower_bound(const T &val) 查詢最大的位置it,使得$[begin(), it)$中的元素都比val小

iterator upper_bound(const T &val) 查詢最小的位置it,使得$[it, end())$中的元素都比val大

erase()

  1. erase(iterator i)
  2. erase(iterator first, iterator last)
  3. int erase(const T &val)
    返回刪除的個數(multiset

map/multimap

multimap可以用作學生成績排序

string

建構函式

string s1()

string s2("Hello") Hello

string s3(4, 'K') KKKK

string s4("12345", 1, 3) 234,子串(n, m)表示從n開始數m個

賦值

可以用char *型別的常量、變數,char型別的常量、變數, stringstring賦值

求子串

string substr(int n = 0, int m = string :: npos)const

當m預設或者超過字串的長度,則求從n開始到結尾的子串

查詢子串和字元

查不到時返回string :: npos

  1. find()從前往後查詢字元或者子串出現的位置
  2. rfind()從後往前查詢字元或者子串出現的位置
  3. find_first_of()
  4. find_last_of()
  5. find_first_not_of()
  6. find_last_not_of()

替換子串

replace()

刪除子串

erase()

插入

insert()