vector list 效率比較

2022-05-06 16:12:11 字數 2178 閱讀 6835

1、比較**(

1

intmain()

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 }

view code

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高效的原因在於配置了比其所容納的元素更多的記憶體,記憶體重新配置會花很...