回覆列表
  • 1 # 波波桑

    很簡單,就是兩個數相加,輸出加的結果。我們先來測試一下兩段程式碼的效能,再來分析慢還是快,為什麼用cin在寫上面這個問題的時候,總是TimeOut,而必須使用while(scanf("%s %s",&a,&b)!=EOF){}才行。a.cpp用C++寫的一個程式碼,很簡單,如下所示:

    b.cpp,用C語言寫的一個實現同樣功能的程式碼,如下所示:

    OK ,我們偽造1億條資料取測試一下,看看程式碼的效能如何,經過測試,我的機器配置如下

    Linux 4.9.0-0.bpo.3-amd64 #1 SMP Debian 4.9.30-2+deb9u5~bpo8+1 (2017-09-28) x86_64 GNU/Linux

    scanf和printf組合執行的時間是33秒,而cin和cout的執行時間是230秒。可想而知,效能差距是多大啊。

    一般來說,在ACM比賽中,我們都會建議用scanf,而不用cin,因為cin是C++程式語言中的標準輸入流物件,即istream類的物件。cin主要用於從標準輸入讀取資料,這裡的標準輸入,指的是終端的鍵盤。

  • 中秋節和大豐收的關聯?
  • 屢戰屢敗還是屢敗屢戰?梅西的世界盃夢想還能實現嗎?