1、比較**(
1view codeintmain()
14 finish =clock();
15 cout << "
vector push_back 時間為
"<< (finish - start) << "毫秒"
<
16//
insert time
17 vector::iterator pos_vec =vecint.begin();
18 ++pos_vec;
19 vecint.insert(pos_vec, 99
);20 finish =clock();
21 cout << "
vector insert 時間為
"<< (finish - start) << "毫秒"
<
2223
24 start =clock();
25for (int i = 0; i < n; ++i)
28 finish =clock();
29 cout << "
list push_back 時間為
"<< (finish - start) << "毫秒"
<
3031
//insert time
32 start =clock();
33 list::iterator pos_ls =listint.begin();
34 ++pos_ls;
35 listint.insert(pos_ls, 99
);36 finish =clock();
37 cout << "
list insert 時間為
"<< (finish - start) << "毫秒"
<
3839
//vector::iterator iter = vecint.begin();
40//
start = clock();
41//
for (; iter!=vecint.end(); ++iter)
44//
finish = clock();
45//
cout << "vector'iterator 訪問元素時間為 " << (finish - start) << "毫秒" << endl;
46//
start = clock();
47//
for (int i = 0; i < vecint.size(); ++i)
50//
finish = clock();
51//
cout << "vector' 訪問元素時間為 " << (finish - start) << "毫秒" << endl;
5253
//start = clock();
54//
for (list::iterator iter = listint.begin(); iter != listint.end(); ++iter)
57//
finish = clock();
58//
cout << "list 訪問元素時間為 " << (finish - start) << "毫秒" << endl;
5960 ++count;
61 n *= 10;62
vecint.clear();
63listint.clear();
64 cout << vecint.capacity() <
6566
}67 }
2、vector下標[ ]與迭代器iterator遍歷效率比較結果:[ ]是iterator的十倍;
3、list與vector迭代器遍歷效率比較:差不多
4、list與vector的push_back()效率比較:vector遠超list
5、list與vector的insert()效率比較:vector效率遠低於list,根本不是乙個數量級
演算法效率比較
題目 針對陣列a和陣列b,兩個陣列的元素內容相同,不過陣列a是已經排序的,陣列b是亂序的,針對陣列的中位數,存在以下兩組程式,比較其效率並分析原因。int g int main for int i 0 i n i 背景知識 當包含流水線技術的處理器處理分支指令時就會遇到乙個問題,根據判定條件的真 假...
STL容器效率比較
1 vector 變長一維陣列,連續存放的記憶體塊,有保留記憶體,堆中分配記憶體 支援操作,高效率的隨機訪問 在最後增加元素時,一般不需要分配記憶體空間,速度快 在中間或開始操作元素時要進行記憶體拷貝效率低 vector高效的原因在於配置了比其所容納的元素更多的記憶體,記憶體重新配置會花很多時間 注...
STL之效率比較
原文出處 1 vector 變長一維陣列,連續存放的記憶體塊,有保留記憶體,堆中分配記憶體 支援操作,高效率的隨機訪問 在最後增加元素時,一般不需要分配記憶體空間,速度快 在中間或開始操作元素時要進行記憶體拷貝效率低 vector高效的原因在於配置了比其所容納的元素更多的記憶體,記憶體重新配置會花很...