程式設計記錄貼 C 篇

2021-09-23 01:51:21 字數 2516 閱讀 8922

原因:c++更新,撇棄或優化了原先不安全一些的語法/函式,舊**會報 unsafe,須用其他更安全語法的代替了;

解決方案:

//方法一:在程式最前面加

#define _crt_secure_no_deprecate;

//方法二:在程式最前面加

#define _crt_secure_no_warnings;

//方法三:在程式最前面加

#pragma warning(disable:4996);

//方法五:無需在程式最前面加那行**,只需在新建專案時取消勾選「sdl檢查」即可;

//方法六:若專案已建立好,在專案屬性裡關閉sdl也行;

//方法七:在工程專案設定一下就行;將報錯那個巨集定義放到 :專案->屬性 -- c/c++-> 預處理器 -- 預處理器定義設定->_crt_secure_no_deprecate

//方法八:在 專案屬性 -- c/c++ -- 命令列 新增:/d _crt_secure_no_warnings 就行了。

作用:是在一段記憶體塊中填充某個給定的值,它是對較大的結構體或陣列進行清零操作的一種最快方法. 

標頭檔案:< memory.h>或< string.h> 

如果要把乙個char a[20]清零,是 memset(a,0,20*sizeof(char)); 

對int vis[xx]清零,時memset(vis,0,sizeof(vis));第二個引數可以填 0,-1,1,其他 ; 

0:把元素都初始化為0 

有人要問,「1」也符合質數的定義,為什麼不能算質數(素數)呢?而且

「1」算作素數後,全體自然數分成素數和合數兩類,豈不是更簡單嗎?原來在歷史上,1曾經被當作質數。後來對合數進行分解時出現了乙個問題:我們知道每個合數都可以分成質數的連乘積,每個質數叫做合數的質因數。 比如,1001 能被哪些數整除,其實質是將1001 分解素因數,由1001=7×11×13,而且只有這一種分解結果,知道1001 除了被1 和它本身整除以外,還能被7、11、13 整除。若把「1」也算作素數, 那麼1001 分解素因數就會出現下面一些結果:

1001=7×11×13

1001=1×7×11×13

1001=1×1×7×11×13

..也就是說,分解式中可隨便添上幾個因數「1」。這樣做,一方面對求

1001 的因數毫無必要,另一方面分解素因素結果不唯一,又增添了不必要的

麻煩。因此「1」不算作素數

對於除指標以外的其他常量宣告句法來說,

const type name

和type const name

的效果是相同的, 即都宣告乙個型別為type名為name的常量,如:

const int x = 1;

和int const x = 1;

還有int x = 1;

const int &y = x;

和int const &y = x;

都是等效的, 只是寫法的風格不同而已, 有人喜歡用const type name, 比如stl的**; 另外一些人喜歡寫成type const name, 比如boost中的大量**, 其實效果都是一樣的。

對於指標來說, const出現在*號的左邊還是右邊或是左右都有才有區別, 具體的:

const type *p; // 乙個不能修改其指向物件的type型指標

// 其實和type const *p等效

type * const p; // 乙個不能修改其自身指向位置的type型指標

const type * const p;

// 乙個既不能修改其指向物件也不能修改其自身指向位置的type型指標

// 也和type const * const p等效

而c++中的引用當引用了乙個值後,就不能把其修改為引用另外乙個值,這相當於type * const p的指標, 如:

int a, b;

int &c = a; // 宣告時就和a繫結在一起

c = b; // 是把b的值賦給a, 而不是把b作為c的另乙個引用

所以引用的功能其實和type * const p指標是相同的, 即其引用(指向)的位置不可改變, 如果宣告引用時再加上const, 其實就相當於const type * const p型的指標了, 所以宣告引用時,const type &name 和 type const &name等效的...

在c++中,是沒有格式符的,我們可以通過使用setprecision()函式來實現這個需求。

想要使用setprecision()函式,必須包含標頭檔案#include 。使用方式如下:

cout << "a=" << setprecision(2) << a <6、ends是『\0',與空格『 』不同

ends函式 終止字串

flush函式 重新整理緩衝區

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

其實:c++對ends的處理時一樣的,都是在緩衝區插入'\0』,≠' ';

之所以在不同的系統下的顯示情況不同是因為,windows和linux對』\0』的處理方式不同,在windows中會輸出乙個空格,而linux下則不會有什麼輸出。 

C 筆記記錄貼1

1 inline內聯函式和普通函式的區別 1 inline函式沒有普通函式標準的棧幀開闢和回退過程,效率高。2 inline在編譯階段處理,可寫在標頭檔案中或呼叫點前。3 i nline只在release版本中起作用。在debug中和普通函式無異。4 用inline修飾的函式最後由編譯器決定是否處理...

git 命令記錄貼

記錄下最近使用git的場景。問題 1 將乙個完整的專案發布到已建立好的git位址 碼雲 執行步奏 1 配置自己的公鑰 2 檢查是否連線成功 ssh t git git.oschina.net welcome to git osc,張輝 3 初始化專案資料夾 git init 4 同步線上版本庫 gi...

做題常見坑記錄貼

1.整數的字面值常量是int,如果1 找這個坑找了十幾分鐘,簡直無情。2.對於鄰接表和雜湊表最好不要用vector來建立,雖然這樣很方便,但對於資料量比較多的情況,vector本身分配記憶體所花的時間太多了,好幾題因為偷懶使用vector超時,最後無奈自己手寫。雖然我們可以自己寫鍊錶實現,但這樣即容...