C 學習之STL(一)vector

2022-06-14 13:03:10 字數 1787 閱讀 6609

c++ primer plus讀書筆記(三)復合型別 中已經簡單介紹過vector是什麼,這個系列主要是介紹stl特性。

vectorc;   //建立乙個空的vector

vectorc1(c2); //建立乙個vector c1,並用c2去初始化c1

vectorc(n) ; //建立乙個含有n個elemtype型別資料的vector;

vectorc(n,elem); //建立乙個含有n個elemtype型別資料的vector,並全部初始化為elem;

c.~vector(); //銷毀所有資料,釋放資源;

c.push_back(elem);                //在容器最後位置新增乙個元素elem

c.pop_back(); //刪除容器最後位置處的元素

c.at(index); //返回指定index位置處的元素

c.begin(); //返回指向容器最開始位置資料的指標

c.end(); //返回指向容器最後乙個資料單元的指標+1

c.front(); //返回容器最開始單元資料的引用

c.back(); //返回容器最後乙個資料的引用

c.max_size(); //返回容器的最大容量

c.size(); //返回當前容器中實際存放元素的個數

c.capacity(); //同c.size()

c.resize(); //重新設定vector的容量

c.reserve(); //同c.resize()

c.erase(p); //刪除指標p指向位置的資料,返回下指向下乙個資料位置的指標(迭代器)

c.erase(begin,end) //刪除begin,end區間的資料,返回指向下乙個資料位置的指標(迭代器)

c.clear(); //清除所有資料

c.rbegin(); //將vector反轉後的開始指標返回(其實就是原來的end-1)

c.rend(); //將vector反轉後的結束指標返回(其實就是原來的begin-1)

c.empty(); //判斷容器是否為空,若為空返回true,否則返回false

c1.swap(c2); //交換兩個容器中的資料

c.insert(p,elem); //在指標p指向的位置插入資料elem,返回指向elem位置的指標

c.insert(p,n,elem); //在位置p插入n個elem資料,無返回值

c.insert(p,begin,end) //在位置p插入在區間[begin,end)的資料,無返回值

std::reverse(c.begin(), c.end()); //反轉c中元素順序

STL之vector學習筆記

參考sgi stl 及 侯捷 stl原始碼剖析 概述 vector是動態空間,隨著元素的加入,它的內部機制會自行擴充空間以容納新元素。但是它不是單純地 配置新空間 資料移動 釋放舊空間,它實際配置的大小會比客戶需求要大一點定義 sgi stl的vector實現於stl vector.h中,而不是ve...

STL 學習之vector測試

vector 是向量陣列,一端開口的陣列,其記憶體結構圖如下所示 可見其在尾部插入資料速度很快,而在其他地方插入資料將會很慢 void testvector vectortest vec clock t timestart clock for long i 0 i ran max i catch e...

c 工程基礎之STL系列 (一) vector

stl在c 實際工程中很重要,可以提供開發效率降低維護成本,實際開發中可能大家並不需要了解其內部實現,但了解大概的資料結構還是有好處的。首先講下幾個在工程中stl的幾個典型問題 1.判斷容器為不為空empty 複雜度是o 1 而用size 0可能是o n 2.clear 並不能釋放記憶體,用swap...