1. 程式人生 > >C++ 標準模板庫STL中vector用法介紹

C++ 標準模板庫STL中vector用法介紹

本文所介紹的std::vector用法基於C++11,std::vector定義於標頭檔案<vector>中,其定義如下:

template<
    class T,
    class Allocator = std::allocator<T>
> class vector;

其包含成員型別其成員函式如下:

成員型別

成員型別定義
value_typeT
allocator_typeAllocator
size_type無符號整數型別(通常是std::size_t )
difference_type有符號整數型別(通常是std::ptrdiff_t
referencevalue_type&
const_referenceconst value_type&
pointerstd::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
<const_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++ 標準模板STLvector用法介紹

本文所介紹的std::vector用法基於C++11,std::vector定義於標頭檔案<vector>中,其定義如下:template< class T, class Allocator = std::allocator<T>

C++ 標準模板STLset用法介紹

本文所介紹的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才

標準模板STLvector

一、向量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 從前面或後面快速的插入與刪除