我實現的網絡庫中使用了C++11中的shared_ptr. 昨天做profile,發現很多CPU都消耗在shared_ptr上,所以打算看看shared_ptr的效率如何. 實驗是這樣的,弄一個臨時的shared_ptr,然后不停的拷貝,拷貝100W次,看消耗多長時間.實驗對象是gcc ...
個人總結: vector支持隨機訪問,但無通用性,當采用list后,就不能再使用了,不可取. 迭代器與范圍for循環所用時間無明顯差異, qt提供的foreach顯然是最差的方法, std算法for each也還可以接受, 但范圍for循環好看得多, 更好用啊 在循環中調用調用cend方法,會頻繁創建一個新的迭代器 不停的構造與析構 ,另外還有函數調用開銷,在debug版本結果來看似乎確實有一定 ...
2017-06-29 23:12 0 3809 推薦指數:
我實現的網絡庫中使用了C++11中的shared_ptr. 昨天做profile,發現很多CPU都消耗在shared_ptr上,所以打算看看shared_ptr的效率如何. 實驗是這樣的,弄一個臨時的shared_ptr,然后不停的拷貝,拷貝100W次,看消耗多長時間.實驗對象是gcc ...
先上代碼 結果如下: 本次測試工10W條數據 通過控制台輸出的結果可以看出, 循環遍歷ArrayList集合時,for和foreach的耗時時間差不多,多次測試可以發現,for循環效率比foreach的效率還要高一些; 循環遍歷LinkedList集合 ...
array是一個固定大小的順序容器,不能動態改變大小,array內的元素在內存中以嚴格的線性順序存儲 與普通數組聲明存儲空間大小[]的方式是一樣有效的,只是加入了一些成員函數和全局函數[get (array)、operators (array)],以便當作標准容器使用 零大小的array ...
c++11新增的容器1:array array最早是在boost中出現:http://www.boost.org/doc/libs/1_61_0/doc/html/array.html 當時的初衷是希望提供一個在棧上分配的,定長數組,而且可以使用stl中的模板算法。 array的用法 ...
c++11中有基於范圍的for循環,基於范圍的for循環可以不再關心迭代器的概念,只需要關系容器中的元素類型即可,同時也不必顯式的給出容器的開頭和結尾。 int arr[] = {1, 2, 3, 4}; for(int a : arr ...
范圍for循環:1.基於范圍的for循環 for(元素類型 元素對象:容器對象) { 循環體 } (1.1)如果循環體由單條語句或者單個結構塊組成,可以省略花括號 (1.2)用元素對象依次結合容器對象中的每一個元素,每結合一個元素,執行依次循環體,直至容器內的所有元素都被結合完為止. (1.3 ...
C++11新增了一種循環:基於范圍的for循環。這簡化了一種常見的循環任務:對數組(或容器類,如vector和array)的每個元素執行相同的操作,如下例所示 for語句允許簡單的范圍迭代:(只遍歷,不修改) 其中,x最初表示數組arrayData的第一個元素。顯示第一個元素 ...
C++11包含一種新的 for 循環,稱為基於范圍的 for 循環,可以簡化對數組元素的遍歷。格式如下: 例如: 例子會輸出:1234 定義用於遍歷數組的變量時,可以使用和普通函數參數一樣的修飾符。本例的 x 變量相當於傳值參數。在循環內部更改 x 不會更改 ...