原因: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超時,最後無奈自己手寫。雖然我們可以自己寫鍊錶實現,但這樣即容...