關於C++中vector結構的使用和它的使用函式
阿新 • • 發佈:2019-01-05
這是來源於c++標準模板庫STL中的一種順序結構
關於順序結構還有兩種即:c++list 和 c++double-ended queues
Vectors 包含著一系列連續儲存的元素,其行為和陣列類似。訪問Vector中的任意元素或從末尾新增元素都可以在常量級時間複雜度內完成,而查詢特定值的元素所處的位置或是在Vector中插入元素則是線性時間複雜度。
vectors相當於一種容器
C++ Vectors可以使用以下任意一種引數方式構造:
- 無引數 - 構造一個空的vector,
- 數量(num)和值(val) - 構造一個初始放入num個值為val的元素的Vector
- vector(from) - 構造一個與vector from 相同的vector
- 迭代器(start)和迭代器(end) - 構造一個初始值為[start,end)區間元素的Vector(注:半開區間).
再說幾個常用的函式
V.at() 函式
返回當前Vector指定位置loc的元素的引用. at() 函式 比 [] 運算子更加安全, 因為它不會讓你去訪問到Vector內越界的元素.
v.at(i) 相對於v[i]更安全
back() 函式返回當前vector最末一個元素的引用
v.back()
clear()函式刪除當前vector中的所有元素.
v.empty()
清空所有
如果當前vector沒有容納任何元素,則empty()函式返回true,否則返回false.
v.insert函式
三種用法:
- 在指定位置前插入值為val的元素,返回指向這個元素的迭代器,
- 在指定位置前插入num個值為val的元素
- 在指定位置前插入區間[start, end)的所有元素 .
max_size() 函式
返回當前vector所能容納元素數量的最大值
v.push_back()函式
push_back()新增值為val的元素到當前vector末尾
push_back( TYPE &val ) |
resize() 函式
改變當前vector的大小為size,且對新建立的元素賦值val
void resize( size_type size, TYPE val ); |
v.swap()函式
交換當前vector與vector from的元素