vector是同一種型別的物件的集合

2021-07-06 02:12:17 字數 1022 閱讀 3178

vector是同一種型別的物件的集合,每個物件有乙個對應的整數索引值,也可稱為一種容器。

vector是乙個類模板。

vector乙個重要特性,vector物件動態增長,執行時高效的新增元素(內部實現機制?)

值初始化時的一種情況:

元素型別可能是沒有定義任何建構函式的類型別,標準庫仍然產生乙個帶初始值的物件,物件中的每個成員都進行了值初始化。

vector下標操作注意事項:

for(vector::size_type ix = 0; ix != ivec.size(); ++ix)

ivec[ix] =0;

(1)這裡用!= 比較操作符而不是《操作符;

size()函式有講究,因為vector型別可以動態的增加資料元素,size()函式一般宣告為inline函式。

只能對已經存在的元素進行下標操作,否則會有"災難性"的後果,產生所謂的"緩衝區溢位"錯誤,導致安全問題。

迭代器迭代器是一種檢查容器內元素並遍歷元素的資料型別。(若一種型別支援一組特定的操作(這些操作遍歷容器所有元素和訪問這些元素),就可稱為迭代器型別)

vector::iterator iter;

vector::iterator iter=ivec.begin(); //vector不為空,指向ivec[0]

vector::iterator iter=ivec.end(); //指向vector的末端的下乙個元素,若vectro為空,begin和end返回的迭代器相同

vector::const_iterator iter;

//該型別只能讀取容器內的元素,但是不能改變,*iter = 0是錯誤的

const vector::iterator iter = ivec.begin(); //迭代器必須初始化,但是++iter是錯誤的

這兩者乙個是指向的元素不能被改變,乙個是自己迭代器本身不能改變

for(vector::iterator iter = ivec.begin(); iter != ivec.end(); ++iter)

*iter = 0;

批量修改同一種控制項屬性

當乙個頁面中新增了許多同型別控制項,當需要控制這些控制項進行顯示或隱藏的時候,需要乙個個的將visible屬性設定為false,十分不方便,後通過論壇受一位大神 至於叫什麼忘了 的啟發,通過建立控制項陣列的方式可以實現同種控制項批量修改同一屬性。toolstripstatuslabel tlable...

超級實用的一種型別 匿名型別

既然說到匿名範例超等適用,得要找到場景來壓服一下,假如人人玩過php,外面有乙個全能的聯絡關係陣列array,任你在聯絡關係陣列array外面怎樣寫,均可以或許用json encode來天生json,異常異常的便利。看到如許的json是不是有一種很爽的感到?是的,確其實咱們開闢中異常的適用,那末成績...

油煙淨化器和抽油煙機是同一種裝置嗎?

在關於廚房油煙方面,對於不是從事餐飲行業的來說,很多人首先想到的就是抽油煙機,畢竟當今對於廚房環境和健康的重視,大部分家庭廚房都安裝了抽油煙機,但是很多人就疑惑了,抽油煙機和油煙淨化器是同一種裝置嗎?從理論上來說,油煙淨化器雖然可以經過一定的零部件改裝從而安裝在廚房,但是其本質上是和抽油煙機是有差別...