C 標準庫型別vector,迭代器使用

2021-07-01 18:46:45 字數 1720 閱讀 5782

要想使用vector,必須包含適當的標頭檔案。

#include

using

std::vector;

vector是乙個類模板。

vector

v1; //v1是空得裡面裝的是t型別

vector

v2(v1); //v2包含v1裡面的所有元素的副本

vector

v2 = v1; //等價v2(v1);

vector

v3(n, val) //v3包含n個val元素

vector

v4(n) //v4包含了n個重複執行了值的初始化物件

vector

v5 //初始化v5裡面的值是a , b, c...

vector

v5vector

v6("c++"); //錯誤

新增元素使用的是:push_back()函式

刪除元素使用的是:pop_back()函式

但是不能使用下標形式新增元素

vector

vec;

vec.push_back(1); //把1新增進去

vec.pop_back(); //刪除1

vec[0] = 1; //錯誤的方式

要使用size_type需要首先指定它是由那種型別定義的。

vector

::size_type; //正確

vector :: size_type //錯誤

使用下標訪問

cout << vec[0] << endl; //訪問vec的第0的位置的元素
使用for迴圈

vector

vec;

vec.push_back(1);

vec.push_back(2);

vec.push_back(3);

//增強for迴圈

for(auto n : vec)

上面這個只是把vec裡面每乙個值拷貝乙份複製給n,改變n的值並不會改變vec裡面的每乙個值。

for(auto &n :  vec)

這個方法就可以改變了。

使用普通的for迴圈

for(vector

::size_type i = 0; icout

<< vec[i] 《另外遍歷還可以使用迭代器

迭代器是集合通用的便利方法

vector

::iterator iter;

begin()返回的是集合的第乙個元素,是乙個指標型別

//是iter指向集合第乙個元素

vector

::interator iter = vec.begin();

end()是指向集合最後乙個元素的下一位,不返回集合中的任何乙個元素。

如果集合為空,begin() == end();

vector

::iterator iter;//宣告乙個迭代器

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

C 標準庫vector以及迭代器

今天看c 的書,出現了乙個新的概念,容器vector以及容器迭代器。vector是同一種物件的集合,每個物件都有乙個對應的整數索引值。和string物件一樣,標準庫將負責管理與儲存元素相關的類存。引入標頭檔案 include 1 vectorv1 vector儲存型別為t的物件。預設建構函式,v1為...

C 標準庫vector型別

vector屬於順序容器,所謂順序容器,就是元素的順序與元素的值無關,與元素加入容器的位置相對應。對於vector可以將其理解為可變大小陣列,支援快速隨機訪問,在尾部之外的位置插入刪除可能會比較慢。了解完概念接下來就開始學習它的用法 假設以下 前面都包含vector標頭檔案,幷包含using nam...

c 標準庫型別 vector

一 標準庫型別vector表示物件的集合,物件型別相同,需要 include using namespace std or using std vector 二 定義和初始化vector物件 vectorv1 vectorv2 v1 vectorv2 v1 vectorv3 n,val n個val元...