一直想知道std中vector和list的效率哪個高些。
於是做了乙個簡單的測試,
對std vector和list的push_back與遍歷操作的效率進行比較。
結果如下:
1. push_back操作:連續push_back操作100000個元素,然後clear()。一直重複10000次。
vector耗時13s, list耗時118s
2. 遍歷操作:採用迭代器對100000個元素的vector和list遍歷,遍歷10000次。
vector耗時20s, list耗時15s
可見,如果是有序的新增元素,vector比list的效率要高將近10倍,而採用迭代器遍歷元素時則效率相差不大。
附**:
#include #include #include #include using namespace std;
class message
;int main()
}time_t end = time(null);
cout << "vector spend time " << end - start << endl;
start = time(null);
for (int i = 0; i < 10000; ++i)
}end = time(null);
cout << "list spend time " << end - start << endl;
delete msg;
msg = null;
start = time(null);
for (int i = 0; i < 10000; ++i)
}end = time(null);
cout << "vector spend time " << end - start << endl;
start = time(null);
for (int i = 0; i < 10000; ++i)
}end = time(null);
cout << "list spend time " << end - start << endl;
return 0;
}
輸出:
vector spend time 13
list spend time 118
vector spend time 20
list spend time 15
std vector與std list的區別
vector std vector是一種順序容器,可以存放任意型別的物件,如int double bool等 它是乙個動態的陣列 即不需要像普通陣列 如int a 10 一樣預先分配元素個數,它可以根據插入的元素的多少來擴充對應的容量,一般是原先的1.5 2倍。實質為,把之前的資料複製到新的陣列中,...
std vector物件操作
c primer4 exercise 3.13 讀一組整數到 vector 物件 1 計算並輸出每對相鄰元素的和。如果讀入元素個數為奇數,則提示使用者最後乙個元素沒有求和,並輸出其值。2 頭尾元素兩兩配對 第乙個和最後乙個,第二個和倒數第二個,以此類推 計算每對元素的和,並輸出。implement ...
轉 std vector成員函式
vector成員函式 函式表述c.assign beg,end c.assign n,elem 將 beg end 區間中的資料賦值給c。將n個elem的拷貝賦值給c。c.at idx 傳回索引idx所指的資料,如果idx越界,丟擲out of range。c.back 傳回最後乙個資料,不檢查這個...