STL使用篇__順序容器
順序容器
概述
STL中的順序容器包括向量(vector)、雙端佇列(deque)和列表(list),它們在邏輯上可看作一個長度可擴充套件的陣列,容器中的元素都是線性排列。可人為決定每個元素在容器中的位置,可以隨時向指定的位置插入新的元素和刪除已有的元素。
順序容器的共性
假設S表示容器的型別,s表示S型別的例項,用T表示S容器的元素型別,用t表示T型別的一個例項,用n表示一個整型資料,用p1和p2表示指向s中的元素的迭代器,用q1,q2表示任何一個指向T型別元素的輸入迭代器(未必指向S中的元素,也未必具有S::iterator型別),順序容器的基本功能如下所示:
S s | 使用預設建構函式,構造一個空容器 |
S s(n,t) | 構造一個由n個t元素構成的容器例項s |
S s(n) | 構造一個有n個元素的容器例項s,每個元素都是T() |
S s(q1,q2) | 使用 [q1,q2) 區間內的資料作為s的元素構造s |
可以使用賦值函式assign將指定的元素賦給順序容器,順序容器中原先的元素會被清除,賦值函式的3種形式是與建構函式一一對應的
s.assign(n,t) | 賦值後的容器由n個t元素構成 |
s.assign(n) | 賦值後的容器由n個值都為T()的元素構成 |
s.assign(q1,q2) | 賦值後的容器的元素為 [q1,q2) 區間內的資料 |
向順序容器中可以一次插入一個或多個指定元素,也可以將一個迭代器區間所表示的序列插入,插入時需要通過一個指向當前容器元素的迭代器來指示插入位置。
s.insert(p1,t) | 在s容器中p1所指向的位置插入一個新的元素t,插入後的元素夾在原p1和p1-1所指向的元素之間,該函式會返回一個迭代器指向新插入的元素 |
s.insert(p1,n,t) | 在s容器中p1所指向的位置插入n個新的元素t,插入後的元素夾在原p1和p1-1所指向的元素之間,沒有返回值 |
s.insert(p1,q1,q2) |
將 [q1,q2) 區間內的元素順序插入到s容器中p1位置處,新的元素夾在原p1和p1-1所指向的元素之間 |
s1.erase(p1) | 刪除s1容器中p1所指向的元素,返回被刪除元素的下一個元素的迭代器 |
s1.erase(p1,p2) | 刪除s1容器中 [p1,p2) 區間內的元素,返回最後一個被刪除元素的下一個元素的迭代器(即在刪除前p2所指向元素的迭代器) |
s1.resize(n) | 將容器的大小變為n,如果原來的元素大於n,則容器末尾多餘的元素會被刪除,如果原來的元素小於n,則在容器末尾會用T()填充 |
s.front() | 獲得容器首元素的引用 |
s.back() | 獲得容器尾元素的引用 |
s.push_back(t) | 向容器尾部插入元素t |
s.pop_back() | 將容器尾部的元素刪除 |
s.push_front(t) | 向容器頭部插入元素t (向量除外) |
s.pop_front() | 將容器頭部的元素刪除 (向量除外) |
相關文章
- STL使用篇__容器
- 初識順序容器
- 順序容器初探(上)
- C++ Qt開發:使用順序容器類C++QT
- C++ 向順序容器新增容器C++
- C++順序容器講解C++
- stl__使用篇
- STL使用篇__vector
- STL使用篇__list
- STL使用篇__deque
- STL使用篇__map
- STL使用篇__set
- STL使用篇__multimap
- STL使用篇__multiset
- STL使用篇__bitset
- C++ 順序容器大小操作 resizeC++
- STL容器---Vector
- STL————deque容器
- C++ 順序容器中訪問元素C++
- C++ 順序容器的刪除操作C++
- Shell指令碼控制docker容器啟動順序指令碼Docker
- STL---常用容器
- STL常用序列容器
- STL容器之deque
- STL_string容器
- STL_deque容器
- Yacc使用優先順序
- c/c++ 標準順序容器 容器的訪問,刪除 操作C++
- C++ STL deque容器C++
- 初探STL容器之Vector
- C++ STL stack容器——棧C++
- STL原始碼剖析——vector容器原始碼
- STL_map和multimap容器
- C++ stl容器詳解C++
- 【Effective STL(3)】關聯容器
- python運算子及優先順序順序Python
- 聊聊功能優先順序的制定——基礎篇
- 順序表