C 中copy的效率問題,很不錯,學習!

2021-07-13 05:22:04 字數 1112 閱讀 3088

在日常程式設計過程中,我們可能經常需要copy各種陣列,一般來說有以下幾種常見的方法:array.copy,ilist.copy,binaryreader.readbytes,buffer.blockcopy,以及system.buffer.memcpyimpl,由於最後一種需要使用指標,所以本文不引入該方法。 

本次測試,使用以上前4種方法,各執行1000萬次,觀察結果。

[csharp]view plain

copy

using

system;  

using

system.collections.generic;  

using

system.diagnostics;  

using

system.io;  

namespace

benchmarkcopyarray  

private

static

void

testcopy(action testmethod, 

string

methodname)  

testmethod();  

stopwatch.stop();  

console.writeline(":  seconds, ."

, methodname, stopwatch.elapsed.seconds, stopwatch.elapsed.milliseconds);  

}  }  

class

testarraycopy  

;  public

void

testbinaryreader()  

public

void

testconverttolist()  

public

void

testarraydotcopy()  

public

void

testblockcopy()  

}  }  

執行結果如下:

C 中內聯函式的效率問題

2 沒有內聯函式時 include include include using namespace std inline void print void print std cout hello world 10seconds 使用內聯函式 include include include using...

列表去重中的copy問題

一般而言,列表去重無非那幾種方法。第一種,利用set 沒有重複值的特性去重,簡單,但是無序。第二種,判斷迴圈的元素是否在新列表中以此來去掉重複值,可以保持原來的順序。第三種,迴圈遍歷,判斷當前元素的個數是否大於1,然後在刪除當前元素 需注意刪除元素後列表的變化 無序。今天主要說的就是第三種方法了。示...

copy模組中的copy與deepcopy的區別

每空閒下來,就覺得以前寫的部落格很low.也許現在也很low 好吧就當公升級版的low吧 如果要了解copy與deepcopy的區別,就需要了解python的儲存機制 python在賦值會在記憶體裡開闢乙個空間來存放值這就叫 記憶體位址 同時會開闢乙個空間來存放名字叫命名,在資料相同長度在一定範圍 ...