知識點掃盲

2021-07-02 16:37:01 字數 2455 閱讀 4199

1.explicit:

c++中, 單引數建構函式(或者除了第乙個引數外其餘引數都有預設值的多參建構函式), 承擔了兩個角色。 1 是個構造器 ,2 是個預設且隱含的型別轉換操作符。

class test1

//普通建構函式

private:

int num;

};class test2

//explicit(顯式)建構函式

private:

int num;

};int main()

explict 為程式設計師提供一種方法,使得他們能夠制止「單一引數的建構函式被當做乙個conversion運算子」;

如:cin.operator int();

2..suo檔案

suo(solution user options)是一種檔案的格式。*.suo 解決方案使用者選項,記錄所有將與解決方案建立關聯的選項,以便在每次開啟時,它都包含使用者所做的自定義設定。比如vs布局以及專案最後編譯的而又沒有關掉的檔案用於下次開啟時用。

其中,vs布局包括:監視器1234的變數列表、斷點標記及開關狀態、輸出視窗錯誤視窗等的分布及其懸浮狀態,還有專案解除安裝狀態標記。

.suo檔案偶爾會被破壞,從而在構建和編輯應用程式時出現意想不到的結果。如果visual studio對於每個解決方案不穩定,就應刪除.suo檔案。下次開啟解決方案時,visual studio會重建它。

3用c++流成員函式put輸出單個字元

在程式中一般用cout和插入運算子「<<」實現輸出,cout流在記憶體中有相應的緩衝區。有時使用者還有特殊的輸出要求,例如只輸出乙個字元。ostream類除了提供上面介紹過的用於格式控制的成員函式外,還提供了專用於輸出單個字元的成員函式put。如:

cout.put('a');

呼叫該函式的結果是在螢幕上顯示乙個字元a。put函式的引數可以是字元或字元的ascii**(也可以是乙個整型表示式)。如

cout.put(65 + 32);

也顯示字元a,因為97是字元a的ascii**。

可以在乙個語句中連續呼叫put函式。如:

cout.put(71).put(79).put(79). put(68).put('\n');

在螢幕上顯示good。

4.c++中ends和flush

ends函式 終止字串

flush函式 重新整理緩衝區

endl函式 終止一行並重新整理緩衝區

5. qdebug

qdebug() << strerror;     //輸出

此篇博文還有很多沒有看懂之處

《有兩個用處一是輸出;二是右移位運算子

<<(左移)、>>(帶符號右移)和》(無符號右移)

6.左值與右值

lvalue 就是 left value 左值

rvalue 就是 right value 右值

之所以叫這麼個名字, 是因為 左值 可以放在 = 的左邊, 而右值不可以.

int a;

const int b = 3;

a = 10; // a可以放在=的左邊, 也就是說可以賦值, 那麼就是"左值"

b = 10; // const 型別不可以賦值, 也就是說不可以放在=的左邊, 所以是"右值"

左值包括所有的 "非const" 變數.

右值包括所有"不能賦值"的東西, 包括const 變數, 臨時變數, 常數等等.

b+c 返回臨時物件, 右值, 所以你不可以 b+c = x;

++a 前 ++和--都返回本身的引用, 屬於左值, 所以可以(++a) = x; 雖然這麼寫沒有意義.

a++ 後 ++和--都返回臨時變數, 是"右值"

是左值還是右值, 只要看他能不能被賦值就可以了.

至於const物件, 你非要用強制型別轉換讓他變成左值也不是不可以..

lvalue:指的是記憶體中持續儲存資料的乙個位址。

rvalue:臨時儲存的表示式結果。

以下三個表示式:

a=b+c;

b=++a;

c=a++;

其中:語句1:表示式"b+c"是乙個rvalue.

語句2:表示式"++a"是乙個lvalue;

語句3:表示式"a++"是乙個rvalue;

7.&&

c++中也會用&&來指定乙個rvalue的引用型別。//右值引用

例如:int && ex_1=2*x+3

在這裡rvalue初始化表示式為引用表示式2*x+3的值,它是乙個臨時值,即rvalue。lvalue則不能這麼做。但在函式中它的作用才凸顯出來,它可以完成引用形參型別,能夠使表示式作為實參來呼叫函式。如果直接用lvalue則不能這麼做。

c語言中&&是一種雙目運算子,表示與運算,而當左邊所給表示式或變數為0時,不再計算右側,整個表示式為零。

&是位與,兩邊是兩個數 如: 3&5 結果是1, 3&7結果是3

&&是邏輯與,兩邊是兩個邏輯表示式 如: 1<3 && 2<3 結果是1,1>3 && 2<3 結果是0

Git GitHub新手知識點掃盲

其實很早之前就學習過git了,不過很久沒用就生疏了,對一些工作區,暫存區,本地庫的概念就陌生了,現在也是把一些新手常常誤解以及認知的錯誤講一下。一.github遠端庫的目錄結構 比如我們以 jquery為案例,看人家的目錄結構 相信大家剛開始看到這種目錄結構有點不知所措,啥東西啊這是?我們開啟倉庫時...

深度學習知識點掃盲 病態 病態條件

2.數學解釋 參考資料 先看看花書大致的內容如下 關於病態,書中多次提及這個概念,實際上,在cv領域大部分問題都是非適定問題 ill posed problem 但是書中對其的解釋卻不是很直觀。當 4.2 式的值很大的時候,一種比較有特點的網路就是這個樣子 對於這樣的網路,訓練中存在的問題是對於不同...

加密演算法 基本知識點掃盲

使用加密演算法的必要性 為了資料在網路傳輸過程中的安全,所以使用加密演算法 加密演算法分類 對稱加密 單金鑰體制 對稱性加密 金鑰加密 加解密使用相同金鑰的加密演算法,例如 des演算法 金鑰一旦洩漏,就會很危險 相當於,一把鎖,有多個鑰匙,鑰匙都是相同的,這樣只要別人有了一把鑰匙,就能開啟你的鎖,...