1. 程式人生 > >關於C++中vector結構的使用和它的使用函式

關於C++中vector結構的使用和它的使用函式

這是來源於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的元素