getchar快速讀入(快讀

解釋

因爲getchar()比scanf要快,故爲了加快讀入,可以用getchar()代替scanf.

思路

利用getchar()將數字讀入,若爲” “或”\n”結束,第一個字符判斷一下數字的正負,然後每讀入一個數字就將當前數*10並加上它

代碼

int read() {
    char ch = getchar(); int x = 0, f = 1;
    while(ch < '0' || ch > '9') {
        if(ch == '-') f = -1;
        ch = getchar();
    } while('0' <= ch && ch <= '9') {
        x = x * 10 + ch - '0';
        ch = getchar();
    } return x * f;
}
void read(T& x) {
    int f = 1; x = 0;
    char ch = getchar();

    while (ch < '0' || ch > '9')   { if (ch == '-') f = -1; ch = getchar(); }
    while (ch >= '0' && ch <= '9') { x = x * 10 + ch - '0'; ch = getchar(); }
    x *= f;
}

引用(&)和指針都是對地址進行操作

不同地方就是引用只能賦值一次不能改變 指針可以指向其他地址

引用對地址操作會更安全(在獲得目標地址的同時也創建了新的地址去暗自備份了目標的數據,在丟失目標地址後就轉向備份)

指針會在丟失目標地址後報錯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章