原文:C++11中對容器的各種循環遍歷的效率比較

個人總結: vector支持隨機訪問,但無通用性,當采用list后,就不能再使用了,不可取. 迭代器與范圍for循環所用時間無明顯差異, qt提供的foreach顯然是最差的方法, std算法for each也還可以接受, 但范圍for循環好看得多, 更好用啊 在循環中調用調用cend方法,會頻繁創建一個新的迭代器 不停的構造與析構 ,另外還有函數調用開銷,在debug版本結果來看似乎確實有一定 ...

2017-06-29 23:12 0 3809 推薦指數:

查看詳情

[C++11]shared_ptr效率比較

  我實現的網絡庫中使用了C++11的shared_ptr. 昨天做profile,發現很多CPU都消耗在shared_ptr上,所以打算看看shared_ptr的效率如何.   實驗是這樣的,弄一個臨時的shared_ptr,然后不停的拷貝,拷貝100W次,看消耗多長時間.實驗對象是gcc ...

Wed Nov 07 04:55:00 CST 2012 5 9103
for循環和foreach循環遍歷集合的效率比較

先上代碼 結果如下: 本次測試工10W條數據 通過控制台輸出的結果可以看出,   循環遍歷ArrayList集合時,for和foreach的耗時時間差不多,多次測試可以發現,for循環效率比foreach的效率還要高一些;   循環遍歷LinkedList集合 ...

Thu Jul 05 01:33:00 CST 2018 0 12422
C++11 容器Array

array是一個固定大小的順序容器,不能動態改變大小,array內的元素在內存以嚴格的線性順序存儲 與普通數組聲明存儲空間大小[]的方式是一樣有效的,只是加入了一些成員函數和全局函數[get (array)、operators (array)],以便當作標准容器使用 零大小的array ...

Fri Jul 15 05:19:00 CST 2016 1 6660
一起學習c++11——c++11的新增的容器

c++11新增的容器1:array array最早是在boost中出現:http://www.boost.org/doc/libs/1_61_0/doc/html/array.html 當時的初衷是希望提供一個在棧上分配的,定長數組,而且可以使用stl的模板算法。 array的用法 ...

Sun Jul 17 04:54:00 CST 2016 0 2536
c++11——基於范圍的for循環

c++11有基於范圍的for循環,基於范圍的for循環可以不再關心迭代器的概念,只需要關系容器的元素類型即可,同時也不必顯式的給出容器的開頭和結尾。 int arr[] = {1, 2, 3, 4}; for(int a : arr ...

Sat Sep 12 23:18:00 CST 2015 0 2178
C++11范圍for循環

范圍for循環:1.基於范圍的for循環 for(元素類型 元素對象:容器對象) {   循環體 } (1.1)如果循環體由單條語句或者單個結構塊組成,可以省略花括號 (1.2)用元素對象依次結合容器對象的每一個元素,每結合一個元素,執行依次循環體,直至容器內的所有元素都被結合完為止. (1.3 ...

Sun Feb 25 04:53:00 CST 2018 0 10909
基於范圍的for循環(C++11)

C++11新增了一種循環:基於范圍的for循環。這簡化了一種常見的循環任務:對數組(或容器類,如vector和array)的每個元素執行相同的操作,如下例所示 for語句允許簡單的范圍迭代:(只遍歷,不修改) 其中,x最初表示數組arrayData的第一個元素。顯示第一個元素 ...

Sun Mar 31 23:28:00 CST 2019 0 1319
C++11基於范圍的for循環

C++11包含一種新的 for 循環,稱為基於范圍的 for 循環,可以簡化對數組元素的遍歷。格式如下: 例如: 例子會輸出:1234 定義用於遍歷數組的變量時,可以使用和普通函數參數一樣的修飾符。本例的 x 變量相當於傳值參數。在循環內部更改 x 不會更改 ...

Fri Jan 15 18:41:00 CST 2016 1 3298
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM