拿到這道題可能很多人都已經暗自裡慶幸,對於學習過過資料結構的人,對於vector這個結構體一定不會陌生,但是如果在面試的過程中面試官考到了這道題我們要該如何來系統的答出令面試官滿意的答案。
下面我們按照一定的條理從下面幾個步驟來回答這個問題:
(1)第一點應該清楚vector使用的是深拷貝;
(2)選擇合適的拷貝演算法(first,last,ret)
在vector的拷貝過程中,為了提公升vector進行拷貝構造的效率,我們在vector的實現中要做相應的型別萃取;開空間時可以開容量大小也可以開size大小,同時開空間的過程又免不了去呼叫空間配置器;
(3)拷貝兩類:
(一)對於pod型別直接採用memcpy進行拷貝;
(二)對於非pod型別需要採用for迴圈加new定位表示式;
(4)迭代器萃取時直接取其中的valuetype型別
(5)針對得到的valuetype型別進行相應的型別萃取
(6)最後切記拷貝完成之後釋放掉原來的舊空間
C STL之vector的使用
1.vector是表示可變大小陣列的序列容器。2.就像陣列一樣,vector也採用的連續儲存空間來儲存元素。也就是意味著可以採用下標對vector的元素進行訪問,和陣列一樣高效。但是又不像陣列,它的大小是可以動態改變的,而且它的大小會被容器自動處理。3.本質講,vector使用動態分配陣列來儲存它的...
C STL之Vector的應用
這是我第一次寫部落格,請多指教!vector是一種向量容器,說白了就是可以改變大小的陣列。vector是乙個模板類,如果直接這樣會報錯 1 vector a 報錯,因為要指定模板。需要像這樣 vectora 這裡可以改成別的型別,float,long等等 那麼,什麼是模板呢?模板是c 支援引數化多型...
C STL之vector用法總結
vector是表示可變大小陣列的序列容器。就像陣列一樣,vector也採用的連續儲存空間來儲存元素。也就是意味著可以採用下標對vector的元素進行訪問,和陣列一樣高效。但是又不像陣列,它的大小是可以動態改變的,而且它的大小會被容器自動處理。本質講,vector使用動態分配陣列來儲存它的元素。當新元...