前些天,看到有些大牛寫了輸出優化,於是乎,我就想比較一下輸出優化和printf、cout的速度,想證明輸出優化是否有所用處。
於是,想起ctime標頭檔案和clock函式可以測試程式在執行期間花費的時間,於是就有了靈感,寫出了乙個測試程式。
網上有兩種輸出優化程式,分別是:
要用陣列的。
int buf[30];
void putint_array(int x)
一般的。
void putint_usual(int p)
有一天構思出了一種遞迴輸出方法。
void putint_recursion(int p)
另外,c++還有printf和cout。
write和putint函式是兩種輸出優化函式,然後以下是測試程式。
#include
#include
#include
#include
using
namespace
std;
int buf[30];
const
int test=1000000;
inline
void putint_array(int x)//輸出優化一,要用陣列
inline
void putint_usual(int p)
inline
void putint_recursion(int p)//輸出優化三,遞迴演算法
int main()//測試
注:
clock()的作用為獲取當前的時間,兩時間差即函式花費的時間。
system(「cls」)的作用為清屏,要用windows.h標頭檔案,且只能在windows作業系統下使用。
test的值可以改變,意義為測試的數量。
為了公平起見,四個函式都inline,變成自帶函式。
運用物理思想:多次實驗獲取普遍規律。
讓我大吃一驚的是cout竟然比printf還快,後面實驗發現cout擅長的是小資料的輸出,不能輸出大資料。
所以,以後我們還是用printf自帶函式或者陣列輸出優化(如果你願意)。如果要寫,也可以裝一下逼。以上就是我的個人觀點,僅供參考。
以下文章可能對你有所參考:
簡單輸出整數
剛剛開始學習c語言,在pta的第一道題就被難住了 我在瀏覽題後給出了答案,如下 此段 在編譯器上執行無任何問題,函式正常呼叫,但是在pta上提交後卻出現了如下錯誤 a.c 18 5 error redefinition of main int main a.c 4 5 note previous d...
逆序輸出整數
描述 將乙個整數逆序輸出。整數的範圍0到10000,不會超出int表示範圍 關於輸入 輸入僅一行,整數n 關於輸出 輸出也僅一行,整數的逆序形式 例子輸入 例子輸出 個人方法 簡單粗暴的分類討論,不過這裡程式設計網格的測試資料出了一點問題,題幹裡說的是不超過10000的整數,但是實際上第六個測試資料...
讀入優化 輸出優化
注意了注意了注意了,重要的事情說3遍,這個東西是騙分神器,騙分神器,騙分神器!眾所周知 scanf比cin快得多,printf比cout快得多,如果你不知道就 就現在知道了 那有沒有更快的呢?當然。請看 好吧,這就是讀入優化的效果,在資料很恐怖的情況下能比scanf多過1 5個點 比如說這種 都說了...