vector之間複製資料的效率

2021-10-07 10:47:27 字數 909 閱讀 9890

先將總結放在最前面:

1、在不考慮原資料的情況下,使用成員函式swap是最快的

2、盡量不要用迴圈遍歷的方法,效率最低

3、根據需要可自行選擇適合的方法

下面是實驗測試**。

//#include

"stdafx.h"

#include

#include

#include

#include

#include

using

namespace std;

int_tmain

(int argc, _tchar* ar**)

clock_t cb=

clock()

;//copy

//方法1 迴圈遍歷 ----1050ms

/*for (int i=0;i<1000000;++i)

*///方法2 assign ----350ms

//方法3 swap ---1ms

//方法4 直接賦值 ----200ms

//vecdes=vecsrc;

//方法5 copy演算法 ----644ms

//copy(vecsrc.begin(),vecsrc.end(),vecdes.begin()); //vecdes為空,越界

vector

vec(

1000000);

copy

(vecsrc.

begin()

,vecsrc.

end(

),vec.

begin()

);clock_t ce=

clock()

; cout

("pause");

return0;

}

提高Vector容器的刪除效率

vector容器是類似與乙個線性陣列,索引效率高,插入,刪除的效率很低,需要遍歷資料列表,一般情況下vector的刪除操作由一下函式完成 iterator erase iterator position 刪除乙個位置iterator erase iterator first,iterator las...

陣列之間的複製

1.進行陣列之間的複製 arraycopy 被複製的陣列名,被複製陣列的起始位置即為下標,要複製的陣列名,要複製陣列的起始位置,要複製的長度即為個數控制 public class arraycopy1 int s new int souce.length int souce.length syste...

vector 與deque list 之間的區別

vector與deque之間的區別?vector deque 底層資料結構 動態陣列 動態開闢的二維陣列空間 前插入刪除元素時間複雜度 中間和末尾的刪插 都是o 1 o n o 1 對於記憶體的使用效率 需要連續的記憶體空間 可以分塊資料儲存,不需要連續的記憶體空間 在中間進行insert或者era...