C++ 標準模板庫STL中vector用法介紹
本文所介紹的std::vector用法基於C++11,std::vector定義於標頭檔案<vector>中,其定義如下:
template<
class T,
class Allocator = std::allocator<T>
> class vector;
其包含成員型別其成員函式如下:
成員型別
成員型別 | 定義 |
---|---|
value_type | T |
allocator_type | Allocator |
size_type | 無符號整數型別(通常是std::size_t ) |
difference_type | 有符號整數型別(通常是std::ptrdiff_t) |
reference | value_type& |
const_reference | const value_type& |
pointer | std::allocator_traits<Allocator>::pointer |
const_pointer | std::allocator_traits<Allocator>::const_pointer |
iterator | 隨機訪問迭代器 (RandomAccessIterator ) |
const_iterator | 常隨機訪問迭代器 |
reverse_iterator | std::reverse_iterator<iterator> |
const_reverse_iterator | std::reverse_iterator |
成員函式
成員函式 | 作用 |
---|---|
(建構函式) | 構造 vector |
(解構函式) | 析構 vector |
operator= | 賦值給容器 |
assign(size_type count, const T& value) assign(InputIt first, InputIt last) assign(std::initializer_list<T> ilist) | 替換容器的內容 |
get_allocator() | 返回相關的分配器 |
1、元素訪問
at(size_type pos) | 訪問指定的元素,同時進行越界檢查 若 pos 不在容器範圍內,則丟擲 std::out_of_range |
operator[] | 訪問指定的元素 |
front() | 訪問第一個元素 |
back() | 訪問最後一個元素 |
data() | 返回指向記憶體中陣列第一個元素的指標 |
2、迭代器
begin() cbegin() | 返回指向容器第一個元素的迭代器 |
end() cend() | 返回指向容器尾端的迭代器 |
rbegin() crbegin() | 返回一個指向容器最後一個元素的反向迭代器 |
rend() crend() | 返回一個指向容器前端的反向迭代器 |
3、容量
empty() | 檢查容器是否為空,元素數為0時返回true,否則返回false |
size() | 返回容納的元素數 |
max_size() | 返回可容納的最大元素數 ,當容器擴充套件到這個最大值時就不能再自動增大 |
reserve(size_type n) | 預留儲存空間 ,n值要比原來的儲存空間大才能重新分配空間 但最大值 |
capacity() | 返回當前儲存空間能夠容納的元素數 |
shrink_to_fit() | 釋放未使用的記憶體,是減少 capacity() 到 size()非強制性請求。請求是否達成依賴於實現 若發生重分配,則所有迭代器,包含尾後迭代器,和所有到元素的引用都被非法化 |
4、修改器
clear() | 清除內容 |
insert(const_iterator pos, const T& value) insert(const_iterator pos, T&& value) insert(const_iterator pos, size_type count, const T& value) insert(const_iterator pos, InputIt first, InputIt last) insert(const_iterator pos, std::initializer_list<T> ilist) | 插入元素 |
emplace(const_iterator pos, Args&&... args) | 直接於 pos 前插入元素到容器中,將引數 args...轉發給建構函式 |
erase(iterator pos) erase(iterator first, iterator last) | 擦除元素或一段序列 |
push_back(const T& x) | 將元素x新增到容器末尾 |
emplace_back(Args&&... args) | 在容器末尾就地構造元素 |
pop_back() | 移除末元素 |
resize(size_type sz, T c = T()) | 改變容器中可儲存元素的個數 若重新分配的元素個數比原來的小,則截斷序列 若比原來的的大,後面的值是c的值,預設為0 |
swap(vector& other) | 交換內容 |
5、非成員函式
operator== operator!= operator< operator<= operator> operator>= | 按照字典順序比較 vector 中的值 |
相關推薦
C++ 標準模板庫STL中vector用法介紹
本文所介紹的std::vector用法基於C++11,std::vector定義於標頭檔案<vector>中,其定義如下:template< class T, class Allocator = std::allocator<T>
C++ 標準模板庫STL中set用法介紹
本文所介紹的std::set用法基於C++11,std::set定義於標頭檔案<set>中,其定義如下:template< class Key, class Compare = std::less<Key>, class
C++標準模板庫(STL):vector、deque和list
之所以把這幾個容器寫在一起,是因為他們都是序列式容器。 序列式容器以線性序列的方式儲存元素(線性結構)。它沒有對元素進行排序,元素的順序和儲存它們的順序相同。以下有幾種標準的序列容器,每種容器都具有不同的特性: vector<T>(向量容器)是一個長度可變的
c++ 標準模板庫 STL 演算法之 for_each 函式的使用用法詳解
std::for_each template <class InputIterator, class Function> Function for_each (InputIterator first, InputIterator last, Functi
C++標準模板庫STL
STL 標準模板庫 包括容器,演算法,迭代器 容器用來儲存資料,比如vector,list,堆疊等,string也算;一共有八個 演算法就是對容器進行操作,比如增刪改查資料 迭代器用來遍歷容器itreator 用指標的方式來遍歷容器的資料 注:平時
C++標準模板庫(STL):常用演算法
find() ---algorithm中的函式 find(start,end,value) start搜尋的起點,end搜尋的終點,要尋找的value值 容器的表示方法(只有vector沒有內建find()函式,其他容器都有,其他容器用自己的find()
C++標準模板庫(STL)迭代器的原理與實現
引言 迭代器(iterator)是一種抽象的設計理念,通過迭代器可以在不瞭解容器內部原理的情況下遍歷容器。除此之外,STL中迭代器一個最重要的作用就是作為容器(vector,list等)與STL演算法的粘結劑,只要容器提供迭代器的介面,同一套演算法程式碼可以利
C++標準模板庫--STL簡介
STL(標準模板庫) 1.概念:STL是一種容器,用來管理一組資料 2.STL提供了兩種型別的容器 序列式容器(可序群集):其中每個元素都有固定的位置,元素的位置取決於進入容器的時機或地點(vector、deque、list) 關係式容器(已序群集):元素的位置取決於特定
C++ 標準模板庫STL multimap 使用方法與應用介紹
C++ Multimaps和maps很相似,但是MultiMaps允許重複的元素。(具體用法請參考map容器) 函式列表: begin() 返回指向第一個元素的迭代器 clear() 刪除所有元素
關於C++標準模板庫(STL)的一些基本使用
vector vector可以理解成變長陣列,即長度根據需要而自動改變的陣列 標頭檔案:#include <vector> 定義:vector<typename>name; vector內可以通過下標或者迭代器(iterator)訪問(只有vector和string才
標準模板庫STL之vector
一、向量vector用於實現陣列的功能(便於訪問,不便於插入刪除),相當於在陣列的基礎上封裝了一些常用的功能。 函式功能 功能 push_back 在尾部新增一個元素 pop_back 在尾
C++ 標準模板庫STL set 使用方法與應用介紹(一)
這次先看例子程式: #include <iostream> #include <set> #include <algorithm> #include <iterator> using namespace std; int
C++:標準模板庫(STL)
介紹STL(standard template library)標準模板庫,是一種高效的C++程式庫。STL分為三類:container(容器),iterator(迭代器)和algorithm(演算法)。容器(container)容器是用來管理某一類物件的集合,包括序列式容器
C++標準模板庫STL簡介
1. C/C++與STL 1.1. 什麼是STL? STL -- 資料結構和演算法的分離,模板(GP); STL的一個重要特點是資料結構和演算法的分離。儘管這是個簡單的概念,但這種分離確實使得STL變得非常通用。例如,由於STL的sort()函式是完全通用的
用 C++ 標準模板庫(STL)的 vector 實現二叉搜尋樹(BST)
介紹 眾所周知,要建一棵樹,我們需要關注它的記憶體分配與釋放。為了避開這個問題,我打算用C++ STL(vector和deque)來建一棵小型的BST。很明顯,這篇文章是出於這個想法的。 背景 BST是應用最廣泛的資料結構之一。C是首選語言,不過因為C++尤其是
C++筆記(6):標準模板庫STL:容器、叠代器和算法
strong 並且 pty 優先級隊列 決定 image left sig 樹結構 STL(Standard Template Library)是C++標準庫的一部分。STL的代碼從廣義上講分為三類:容器、叠代器和算法。 1.容器 2.叠代器 3.算法 ---------
C++ 標準模板庫介紹(STL)
dha 組件 queue 實驗 sstream 基本 自己 regex 程序 1. STL 基本介紹 C++ STL(標準模板庫)是惠普實驗室開發的一系列軟件的統稱,是一套功能強大的 C++ 模板類。STL的目的是為了標準化組件,這樣就不用重新開發,讓後來者可以使用現成的組
C++標準模板庫vector介紹
版權宣告:本文為博主原創文章,轉載請註明出處。 個人部落格地址:https://yangyuanlin.club 歡迎來踩~~~~ 介紹 Vector Vectors 包含著一系列連續儲存的元素,其行為和陣列類似。訪問Vector中的任意元素或從
【演算法筆記】第六章:C++標準模板庫(STL)介紹
【演算法筆記】第六章:C++標準模板庫(STL)介紹 標籤(空格分隔):【演算法筆記】 第六章:C++標準模板庫(STL)介紹 第六章:C++標準模板庫(STL)介紹 6.1 vector的常見用法詳解
C++標準模板庫(STL)的簡單知識點
一.STL簡介 1.簡介 STL<標準模板庫>是通用類模板和演算法的集合,他提供給程式設計師一些標準的資料結構的實現。 2.三類資料結構 1.順序性容器 vector 從後面快速的插入與刪除,直接訪問任何元素 deque 從前面或後面快速的插入與刪除