C 學習之路(vector 向量)

2021-09-25 21:35:45 字數 1413 閱讀 9480

是乙個封裝了動態大小陣列的順序容器,向量是乙個能夠存放任意型別的動態陣列。

迭代器型別

vector::iterator it1;//it1能讀寫vector中的元素

string ::interator it2;//it2能讀寫string中的元素

vector::const_iterator it3;//只能讀

string::const_iterator it4;//只能讀

auto b=v.begin();

auto c=v.end();

// 物件是常量 返回值const_iterator 如果不是iterator

auto it3=v.cbegin();

auto it4=v.cend();

//無論vector物件(或string物件)本身是否為常量,返回值都是都是const_iterator

解引用:獲取位址的值

int *p= &a;     //定義乙個整型指標  p    並且p指向了a的位址     (&取位址)

*p=10; //解引用, 即 給a賦值10;

(*it)empty();//解引用it,然後呼叫物件的empty();物件

*it.empty();//錯誤

箭頭運算子(->)即表示:

it->mem==(it*).mem;
不能在for迴圈中新增物件。改變容量eg:push_back會使vector的迭代器失效

舉例,指向某vector物件的中間位置:

auto mid=vi.begin()+mid.size()/2;

/*下標從0開始*/

迭代器二分搜尋二分法,即從中間開始搜尋,元素小於中間值從前半段搜尋,大於中間值,從後半段開始。

auto target;

vetor text;

auto beg=text.begin();

auto end=text.end();

auto mid=text.begin();+(text.begin()-text.end());

while(mid!=end&&*(mid)!=target)else

mid=beg+(end-beg)/2;

}

學習C 向量 vector

一 向量的介紹 向量vector是一種物件實體,能夠容納許多其他型別相同的元素,因此又被稱為容器。與string相同,vector 同屬於stl standard template library,標準模板庫 中的一種自定義的資料型別,可以廣義上認為是陣列的增強版。在使用它時,需要包含標頭檔案 ve...

學習C 向量 vector

一 向量的介紹 向量 vector 是一種物件實體,能夠容納許多其他型別相同的元素,因此又被稱為容器。與string相同,vector 同屬於stl standard template library,標準模板庫 中的一種自定義的資料型別,可以廣義上認為是陣列的增強版。在使用它時,需要包含標頭檔案 ...

學習C 向量 vector

一 向量的介紹 向量 vector 是一種物件實體,能夠容納許多其他型別相同的元素,因此又被稱為容器。與string相同,vector 同屬於stl standard template library,標準模板庫 中的一種自定義的資料型別,可以廣義上認為是陣列的增強版。在使用它時,需要包含標頭檔案 ...