C vector用法總結

2021-08-10 16:09:48 字數 1757 閱讀 7866

向量 vector 是一種物件實體, 能夠容納許多其他型別相同的元素, 因此又被稱為容器。 與string相同, vector 同屬於stl(standard template library, 標準模板庫)中的一種自定義的資料型別, 可以廣義上認為是陣列的增強版。

vector 容器與陣列相比其優點在於它能夠根據需要隨時自動調整自身的大小以便容下所要放入的元素。此外, vector 也提供了許多的方法來對自身進行操作。

檔案包含:

首先在程式開頭處加上#include< vector >以包含所需要的類檔案vector

還有一定要加上using namespace std;

vector 型變數的宣告以及初始化的形式也有許多, 常用的有以下幾種形式:

vector

a ; //宣告乙個int型向量a

vector

a(10) ; //宣告乙個初始大小為10的向量

vector

a(10, 1) ; //宣告乙個初始大小為10且初始值都為1的向量

vector

b(a) ; //宣告並用向量a初始化向量b

vector

b(a.begin(), a.begin()+3) ; //將a向量中從第0個到第2個(共3個)作為向量b的初始值

除此之外, 還可以直接使用陣列來初始化向量:

int n =  ;

vector

a(n, n+5) ; //將陣列n的前5個元素作為向量a的初值

vector

a(&n[1], &n[4]) ; //將n[1] - n[4]範圍內的元素作為向量a的初值

c++ vector過載了 運算子,因此可以像直接使用陣列的方式訪問vector中的元素,比如cout<< vec[0]<< endl; 記住下標是從0開始的;

但是,直接使用並不會檢查vector是否越界,因此,在很多文章中推薦使用at(i)成員函式

使用迭代器的情況:

迭代器可以認為是指向vector元素的指標

vector

::iterator it;

for(it=vec.begin();it!=vec.end();it++)

cout

<<*it《另外,在c++標準中,auto變數的使用非常方便(在c++ 11之後的標準中auto的支援更為強大),可以通過如下**方便的定義迭代器:

cout<<*it

<

這種使用形式在定義了乙個二維或三維vector,或是vector中包含自定義結構體的時候非常好用,無需寫長長的iterator定義。

特別的,在使用迭代器指向乙個儲存了結構體的vector時,引用結構體內變數的時候需要給*it 加上小括號:

#include

#include

#include

using

namespace

std;

struct mypoint

;void main()

sort(vec.begin(), vec.end(), comp);

c vector 基本用法

include a.push back x x 為插入的資料out coll.erase coll.begin i,coll.begin j 刪除區間 i 1,j coll.erase coll.begin 2,coll.begin 5 刪除區間 3,5 coll.erase coll.begin ...

C vector用法初記

建立一維vector vector nums 不指定長度 vector nums n 指定長度為n新增元素 nums.push back 1 直接從陣列末端新增 nums i 1 直接賦值給第i個位置刪除元素 nums.resize nums.size i 直接將陣列長度減小,某種方式上刪掉了後面i...

C vector基本用法

vector 是向量型別,它可以容納許多態別的資料,如若干個整數,所以稱其為容器。可以將其視為能夠存放任意型別的動態陣列。vector 是c stl的乙個重要成員,使用它時需要包含標頭檔案 include 一 vector 的初始化 可以有五種方式,舉例說明如下 1 vectora 10 定義了10...