vector簡單使用

2022-09-06 16:51:12 字數 2387 閱讀 9994

在刷ccf題的時候日常做完去網上檢視別的同學怎麼做的

發現有使用vector後三十幾行**就寫出來的,雖然時間複雜度和我一樣十幾毫秒,but !我看中了它的**量啊!多麼的少啊!

1.簡單的介紹vector:

在c++語言中使用,是一種順序容器,事實上和陣列差不多,但它比陣列更優越。一般來說陣列不能動態拓展,因此在程式執行的時候不是浪費記憶體,就是造成越界。而vector正好彌補了這個缺陷,它的特徵是相當於可分配拓展的陣列,它的隨機訪問快,在中間插入和刪除慢,但在末端插入和刪除快。/ps 官方用語

2.什麼時候使用

如果你想使用陣列來進行插入刪除查詢時,其中會不可避免的遇到移動一大堆的陣列元素,比如某個元素的值被刪除,那麼後面的都要向前移動的時候,推薦你使用vector,因為它不考慮陣列下標啊!!!通過指標刪除元素的值可以說非常方便了!節省了很大的時間啦,但是問題也是在這裡出現:在中間插入與刪除慢,emmm這個慢其實比大容量陣列我們自己移動快很多好伐

3怎麼使用:

標頭檔案:

#include

基本操作:

//

容量vec.size();//

向量大小

vec.max_size();//

向量最大容量

vec.resize();//

更改向量大小

vec.capacity();//

向量真實大小

vec.empty();//

向量判空

vec.shrink_to_fit(); //

減少向量大小到滿足元素所佔儲存空間的大小

//修改

vec.assign(); //

多個元素賦值,類似於初始化時用陣列進行賦值

vec.push_back();//

末尾新增元素

vec.pop_back();//

末尾刪除元素

vec.insert();//

任意位置插入元素

vec.erase();//

任意位置刪除元素

vec.swap();//

交換兩個向量的元素

vec.clear();//

清空向量元素

//迭代器

vec.begin();//

開始指標

vec.end(); //

指向最後乙個元素的下乙個位置

vec.cbegin(); //

指向常量的開始指標,意思就是不能通過這個指標來修改所指的內容,但還是可以通過其他方式修改的,而且指標也是可以移動的。

vec.cend();//

指向常量的末尾指標:

//元素的訪問

vec[1]; //

下標訪問,並不會檢查是否越界

vec.at(1); //

at方法訪問,以上兩者的區別就是at會檢查是否越界,是則丟擲out of range異常

vec.front();//

訪問第乙個元素:

vec.back();//

訪問最後乙個元素:

int* p = vec.data(); //

返回乙個指標,可行的原因在於vector在記憶體中就是乙個連續儲存的陣列,所以可以返回乙個指標指向這個陣列。

4.使用案例

#include#include

#include

#include

using

namespace

std;

intmain()

printf("\n

");for(it = v1.begin();it != v1.end();it++)

cout

<<*it<<"

";

cout

it += 1

; cout

<<"

第二個數為:

"<<*it<<"

"

//刪除倒數第二個數

it =v1.begin();

it += 1

; cout

<<"

刪除之前第二個數後,新的第二個數為:

"<<*it<<"

"

cout

<<"

清空後元素個數為:

"return0;

}

可以看見,我們刪除乙個元素後,該位置自動由後面的元素填充,不需要我們手工移啊移,而且也不需要實現定義陣列的大小,避免溢位,很方便啦

vector 簡單使用

vector是c 標準模板庫中的部分內容,它是乙個多功能的,能夠操作多種資料結構和演算法的模板類和函式庫。vector之所以被認為是乙個容器,是因為它能夠像容器一樣存放各種型別的物件,簡單地說,vector是乙個能夠存放任意型別的動態陣列,能夠增加和壓縮資料。為了可以使用vector,必須在你的標頭...

vector簡單使用

其實vector並不難,就是別用混了就行了。vectorv 這是定義乙個int型向量 vectorv n 這是定義初始大小為n的向量 vectorv n,1 這是定義初始大小為n,初始值為1的向量 vector v 這樣就巢狀定義了,他可以巢狀本身,不過注意後面兩個 中間有個空格 vectorv 5...

vector容器的簡單介紹與使用

直接改變容器的大小 vector容器就是能夠儲存很多資料,但是必須是相同型別的。類似陣列,但是按需分配。容器的構造方式 1 需要新增標頭檔案 2 vector 型別 容器名 include include 容器使用標頭檔案 using namespace std int main vectorv 插...