1. 程式人生 > >C++—揭祕大牛部落格一些不同凡人的寫法

C++—揭祕大牛部落格一些不同凡人的寫法

  天下之大,無奇不有,C++也是這樣,今天小編來盤點幾個有意思的程式碼,看看你認識幾個?以後見到之後千萬別裝不認識。

 

一、基礎篇——不一樣的輸出

1.cerr 輸出

  cout和cerr究竟有什麼不同?這也是小編以前很茫然的一部分;

  cout對應於標準輸出流,預設情況下是顯示器。這是一個被緩衝的輸出,可以被重定向。

  cerr對應標準錯誤流,用於顯示錯誤訊息。預設情況下被關聯到標準輸出流,但它不被緩衝,也就說錯誤訊息可以直接傳送到顯示器,而無需等到緩衝區或者新的換行符時,才被顯示。一般情況下不被重定向。    翻譯成人話來講就是cout可重定向,cerr不能重定向,也就是說如果你是搞競賽的話,please “ 珍愛生命,遠離cerr
"。那麼,為什麼用cerr?比如說:你的程式遇到了棧用完了的情況或者遞迴無出口之類的情況,沒有地方借記憶體來存放錯誤資訊,自從有了cerr,革命變得煥然一新,在最緊急的情況下,仍能得到輸出的支援。     二、手殘篇——懶人的做法 2.傳說中的萬能標頭檔案!    #include <iostream>    #include <cstdio> 
  #include <fstream> 
  #include <algorithm> 
  #include <cmath> 
  #include <deque> 
  #include <vector> 
  #include <queue> 
  #include <string> 
  #include <cstring> 
  #include <map> 
  #include <stack> 
  #include <set> 
  這一列標頭檔案你是不是看的眼花繚亂呢?   為了能讓我們的手可以不變殘,為了讓我們的大腦得到休息,為了我們能避免不必要的尷尬,請認準:    #include<bits/stdc++.h>,對,你沒有看錯!一個頂13個!像小編這樣的,從來都記不住 #include<algorithm>,以至於不能用sort~~~,只能手寫排序,實屬人生一大悲劇。   那麼這麼簡便的一個頭檔案在此,其他標頭檔案都得靠邊站,要它們有甚用?雖然它在大多oj上的相容性還蠻好的,但是有一些競賽是不能使用萬能標頭檔案的,據說時間也比較慢,所以不到“山重水複疑無路”,最好不要使用。   3.using namespace std;有時候
可以不用寫!
#include<iostream> using namespace std; int main() {   cout<<"Hello,world";   return 0; }   小編是一個手懶的人,自然與旁人不同,小編會濃縮成這樣。 #include<iostream> main() {   std::cout<<"Hello,world"; }   對,就是這麼霸氣!return 0都不帶寫的,程式仍然可以執行。如果使用using namespace std;語句較少,可以在每句前加std::在特定情況下很方便。   4.typedef,一個更偷懶且沒有侷限性的法寶   小編以前一直看不懂什麼是typedef,也不願意知道,後來才明白它可以起到一勞 永逸的效果。比方說小編在一次比賽中發現題目要求要用long long,且要寫多次,小編會在main函式外添一句 typedef   long long   ll;這樣以後再寫long long就寫成 ll name;就好了。小編是奇葩中的奇葩,自然不會就此罷休,於是寫了一句 #define long long ll;並把剛才那句刪了,結果還沒有任何錯誤,一樣可以達到相同的效果,小編真是太高興了,因為以後不用背typedef這個單詞了。     三、程式碼與時間的較量!!! 5.>> 運算 和 << 運算 >> 運算是二進位制的情況下,右移多少位,相當於除以2的n次冪 例如: 3>>1 = 1 8>>2 = 2  << 運算同理,小編之前一直看不懂這是幹什麼,最近才明白,小編心裡有一個大大的問號,直接寫一個a/2什麼的不就行了。 像小編這樣的蒟蒻是無法理解什麼是時間複雜度的,小編只在意怎麼能寫出題來,如果你是大佬,建議學會這個運算。   6.輸出的不同  眾所周知,C++中輸入輸出分為兩大部分:cin和cout,scanf和printf;
如果你還在寫: #include<iostream> using namespace std; int main() {   cout<<"Hello,world!";   return 0; } 你就out了,別看cin,cout寫起來方便且是C++獨有的,其實printf和scanf才是比較快的,如果是參加競賽,請使用printf和scanf。 //結尾彩蛋:黑客帝國程式碼雨網址:file:///C:/Users/thtf/Desktop/1.html 真心好玩,宜裝逼   感謝所有看到最後的同志們,小編還有很多不足,希望大家能提出來,小編會更加努力的。