list<
int> list;
list.
push_back(1
);list.
push_back(2
);list.
push_back(3
);list.
push_back(4
);list.
push_back(5
);list.
push_back(6
);list<
int>
::iterator iterator1 = list.
begin()
;while
(iterator1 != list.
end())
輸出:
為什麼最後乙個k明明指向了end迭代器,為什麼還能輸出值呢?
改變源**:
list<
int> list;
list.
push_back(1
);list.
push_back(2
);list.
push_back(3
);list.
push_back(4
);list.
push_back(5
);list.
push_back(8
);list<
int>
::iterator iterator1 = list.
begin()
;while
(iterator1 != list.
end())
輸出:
發現端倪。
因為list是動態分配記憶體的,實際上alloc分配的記憶體不是插入的實際數值個數,實際分配的記憶體可能是插入數值的2倍或1.5倍(為了防止頻繁插入超過容器的空間後,重新分配記憶體)。
因此雖然k指向了end迭代器,但是輸出了值。不過這個值是隨機分配的,沒有任何實際意義。
為什麼 比list()更快?
我最近比較了和list 的處理速度,並且驚訝地發現執行速度比list 快三倍以上。我跑了相同的測試與 和dict 結果幾乎相同 和 兩個花了大約0.128sec 百萬次,而list 和dict 大約花費每個0.428sec 萬次。後來我查了查原因,得到的結論如下 list 需要全域性查詢和函式呼叫,...
陣列越界會出現什麼 為什麼會出現刺繡?
為什麼會出現刺繡,可能各個地方的繡種不同,答案也不盡相同。查翻資料,今天談談地處江南地區的 蘇繡 是為何出現。蘇繡的出現離不開四個字 斷髮文身 斷髮文身的古人 蘇繡至今已有2000餘年的歷史,傳說 於仲雍的孫女 女紅 首製繡衣。古代周太王古公亶父的兒子太伯 仲雍來到今江南蘇州一帶建立了吳國,當地人有...
Python 為什麼比 list 快?
在日常使用 python 時,我們經常需要建立乙個列表,相信大家都很熟練了吧?方法一 使用成對的方括號語法 list a 方法二 使用內建的 list list b list 上面的兩種寫法,你經常使用哪乙個呢?是否思考過它們的區別呢?對於第乙個問題,使用timeit模組的 timeit 函式就能簡...