vector是表現為可變長陣列的序列容器,vector使用連續的儲存位置來儲存元素。
在vector內部,使用乙個動態分配記憶體的陣列來儲存其元素。當插入新元素的時候,這個陣列可能需要重新分配,以增加大小,這意味著分配乙個新的陣列,並且將原有的元素從舊的位置移到新的陣列中。這個操作在時間方面是個開銷極大的操作,因此,vector相比於陣列,vector消耗更多的記憶體,以換取管理儲存和動態增長的能力。
一:vector建立和初始化方法
(1).預設初始化,vector為空,size為0,未開闢空間,可通過push_back()新增元素。
vectorv;
v.push_back(10);
ps:由於未開闢空間 不可以通過下標形式去賦值。
v[0] = 10;//這種寫法錯誤
(2).用已存在的vector初始化新的vector
vectorv(5,2);
vectorv_copy(v);
(3) .指定初始化元素個數m,元素值n
vectorv(m,n);
(4) .指定初始化元素個數m,元素值預設0
vectorv(m);
二:vector的刪除
(1):std::vector::erase()
函式原型
iterator erase (iterator position); //刪除指定元素
iterator erase (iterator first, iterator last); //刪除指定範圍內的元素
vectorvec;
for(auto it = vec.begin(); it != vec.end(); it++)
}
比較:
algorithm演算法刪除:
remove(first, last, value) 函式移除[first, last) 範圍的 value,返回新值範圍的尾後迭代器。
remove並不是真的刪除元素,而是以覆蓋的方式將滿足刪除條件的元素移到容器最後。
remove+ erase配合刪除
vec.erase(remove(vec.begin(), vec.end(), 3), vec.end());
相關基礎知識
宣告 在作者學習資料結構的過程中發表的博文,一般是自己學習後知識點的總結,同時有些是摘抄於教材的,學習教材為 資料結構 c語言版 秦峰主編。特此宣告,後續博文不在重複說明。一 基本概念 資料 data 是對客觀事物的符號表示,它能夠被計算機識別 儲存 和加工處理。資料元素 data element ...
硬碟相關基礎知識
說明 本文 於網路相關知識收集。內部資料傳輸率 internal transfer rate 是指硬碟磁頭與快取之間的資料傳輸率,簡單的說就是硬碟將資料從碟片上讀取出來,然後儲存在快取內的速度。內部傳輸率可以明確表現出硬碟的讀寫速度,它的高低才是評價乙個硬碟整體效能的決定性因素,它是衡量硬碟效能的真...
MCU相關基礎知識
1.mcu有串列埠外設的話,在加上電平轉換晶元,如 max232,sp3485 就是rs232 和rs485 介面了。2.rs485採用差分訊號負邏輯,2 6v表示0 6 2表示1 有兩線制和四線制兩種接線,四線制是全雙工通訊方式,兩線制是半雙工通訊方式。在 rs485 一般採用主從通訊方式,即乙個...