vector
定義
向量 個人理解是公升級的陣列
vector<
typename
> name;
vector<
int> name;
vector<
double
> name;
vector<
char
> name;
vector name;
//node是結構體的型別
vectorint>
> name;
//>>之間要加空格 //兩個都可變長的二維陣列
vector<
typename
> arrayname[arraysize]
;//arrayname[0]~arrayname[arraysize - 1]中每乙個都是乙個容器
//但是其一維長度已經固定為arraysize, 另一維才是"變長"的 與上面那種有區別
vector的訪問
通過下標訪問 對 vector vi 來說,vi[0], vi[1]訪問即可 下標從0 到 vi.size() - 1
通過迭代器訪問 迭代器(iterator) 定義為 vector::iterator it;
vector<
int>
::iterator it;
vector<
double
>
::iterator it;
//得到迭代器it
通過*it來訪問vector裡的元素
//eg.
#include
#include
using
namespace std;
intmain()
/* 為取vi的首元素位址,而it指向這個位址
//只有在vector和string中,才允許使用vi.begin() + 1 這種迭代器加整數的寫法
vector::iterator it = vi.begin();
for(int i = 0; i < 5; i++)
*///end()作為迭代器末尾標誌,不儲存任何元素 begin() end()左閉右開
vi.erase
(vi.
begin()
+1, vi.
begin()
+4);
// 1 5
for(vector<
int>
::iterator it = vi.
begin()
; it != vi.
end(
); it++
)return0;
}
常用函式
push_back(x) 就是在vector後面新增乙個元素x, 時間複雜度為o(1)
pop_back() 用以刪除vector的尾元素, 時間複雜度為o(1)
size() 獲取vector中元素的個數,時間複雜度為o(1) 返回的是unsigned型別
clear() 用來清空vector中的所有元素, 時間複雜度為o(n), 其中n為vector中元素的個數
insert() intsert(it, x)用來向vector的任意迭代器it處插入乙個元素x, 時間複雜度o(n)
vi.
insert
(vi.
begin()
+2,-
1);//將-1 插入vi[2]的位置
earse() : 兩個用法 :
刪除單個元素 erase(it)即刪除迭代器為it處的元素 vi.erase(vi.begin() + 3) 刪除vi中第4個元素
刪除乙個區間內的所有元素 erase(first, last) 刪除[first, last) 左閉右開
常見用途
儲存資料 元素不確定的場合
用鄰接表儲存圖
STL vector學習筆記
vector 是stl的動態大小的陣列,連續記憶體的容器 和一般資料一樣對於插入和刪除的時間複雜度是很高的。includeint main assign beg,end 將 beg end 區間中的資料賦值給容器。assign size type num,const type val 賦num個值為...
STL vector 的使用演算法
includeusing namespace std include 向量 include 迭代器 include 演算法 include 函式 stl三大元件 容器,演算法,迭代器 void main vectora ar,ar 8 a.push back 1 a.push back 2 copy...
題目筆記 UVA101 STL vector
stl vector include include include using namespace std const int maxx 30 int n string s1,s2 vector plie maxx void find bl int a,int p,int h 這裡用的是引用不太明...