STL vector

大小
size()
empty()
max_size()
capacity() :返回實際能容納的元素量


容量重要有兩個原因:
1.一但內存重新分配,vector元素相關的所有reference,pointer,iterator都會失效。
2.內存重新分配很耗時間。


reserve()保存適當容量,避免重新分配內存。


vector<T>(5)實參是個數值,它將成爲vector 的起始大小。
這種方法會很耗時,不如使用reserve()


不能使用reserve()縮減大小。


vector<Elem> c
vector<Elem> c(c2)
vector<Elem> c=c2
vector<Elem> c(n) 利用元素的default函數生成一個大小爲n的vector
vector<Elem> c(n,elem) 建立一個大小爲n的vector,每一個元素值都是elem
vector<Elem> c(beg,end) 以區間[beg,end)作爲元素初值


c.empty()
c.size()
c.max_size()
c.capacity()
c.reserve(num)
c1==c2
c1!=c2
c1<c2
c1>c2
c1<=c2
c1>=c2


賦值
c=c2
c.assign(n,elem) 複製n個elem,賦值給c
c.assign(beg,end)
c.assign(initlist) 將初值列initlist的所有元素賦值給c
c1.swap(c2) 置換c1和c2的數據
swap(c1,c2) 置換c1和c2的數據


c[idx] (不檢查範圍)
c.at(idx)(檢查範圍)


c.front()返回第一元素
c.back()返回最末元素


迭代器
c.begin()
c.end()
c.rbegin()
c.rend()


操作


c.push_back()
c.pop_back(elem)
c.insert(pos,elem) 在iterator 位置 pos之前方插入一個elem拷貝,並返回新元素的位置
c.insert(pos,n,elem) 插n個拷貝,並返回第一個新元素的位置
c.insert(pos,begin,end)
c.erase(pos) 一處iterator 位置pos上的元素 返回下一元素的位置
c.erase(beg,end) 
c.resize(num) 將元素數量改爲num
c.resize(num,elem) 多出來的新元素是elem的拷貝
c.clear() 移除所有元素,將容器清空

發佈了53 篇原創文章 · 獲贊 22 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章