1.函式執行時間計時:
clock_t start = clock();
函式體;
clock_t end = clock();
double time = (double)(end - start)/clocks_per_sec;
2.檔案內容操作:
fstream file;
std::ostringstream oss;
oss<<"file_1.txt";
filie.open(oss.str().c_str(),ios_base::out|ios_base::trunc);//ios_base後面的內容用於控制檔案。
file<<"寫入的資料"<<"\n";
file.close();
file.clear();
3.release版本exe使用效能檢測無法進入函式的解決方法:
無法進入函式主要是因為release版本沒有生成pdb檔案,修改設定就可生成。詳見:vs2015 讓release程式生成pdb檔案可以加dump除錯的release版本_yhc166188的部落格-csdn部落格_release 生成pdb
前兩步是exe執行依賴的庫的修改,第三步是main函式所在工程屬性的修改。
4.檢視指標指向記憶體大小的方法:
char* ptr = "sdf";
int s = strlen(ptr);
printf("ptr value is:%s \n", ptr);
使用sizeof不行。
5.返回環境變數path的值
char* ptr = getenv("path");
printf("ptr value is:%s \n", ptr);
6.字串拷貝
char str[10] = ;
snprintf(str, 10 ,"0123456789");
printf("str=%s/n", str);
snprintf速度比memcpy,strcpy要慢,但是適用範圍廣。要注意第二個引數(該引數的值為 拷貝位元組數(bytes)),如果值大於目標物件可以承受的大小,將會執行出錯。
7.fopen和fopen_s
fopen用法: fp = fopen(filename,"w")。
fopen_s用法:,須定義另外乙個變數errno_t err,然後err = fopen_s(&fp,filename,"w")。
返回值: fopen開啟檔案成功,返回檔案指標(賦值給fp),開啟失敗則返回null值;
fopen_s開啟檔案成功返回0,失敗返回非0。
在定義file * fp 之後,fopen的用法是: fp = fopen(filename,"w")。而對於fopen_s來說,還得定義另外乙個變數errno_t err,然後err = fopen_s(&fp,filename,"w")。返回值的話,對於fopen來說,開啟檔案成功的話返回檔案指標(賦值給fp),開啟失敗則返回null值;對於fopen_s來說,開啟檔案成功返回0,失敗返回非0。
8.獲取年月日
(12條訊息) localtime、localtime_s、localtime_r的使用_開源的才是世界的-csdn部落格_localtime_r
9.指標學習
int a = 10;
int aa = 100;
int* s = nullptr;
int* p = &a;
//int* p = s;
printf("p value is:%d \n", *p);
int& c = *p;
printf("c value is:%d \n", c);
c = aa;
printf("c value is:%d \n", c);
10.g++指令
g++ -o testmysql -std=c++14 -i/usr/include/jdbc -l/usr/lib/private -lcrypto -lssl -lmysqlcppconn testmysql.cpp
鏈結庫 -l 時,如果庫的名稱為libssl.so,則 -lssl,如果庫的名稱為libcrypto.so,則-lcrypto.
11.c++等待一段時間
#include // std::thread, std::thread::id, std::this_thread::get_id
#include
this_thread::sleep_for(chrono::seconds(2));
12.windows下安裝mysql
windows下安裝mysql詳細教程 - m1racle - (cnblogs.com)
mysql的安裝與配置——詳細教程 - winton-h - (cnblogs.com)
注意一點:新建使用者時需要注意乙個問題,更改密碼需要加上password單詞修飾,如下語句會出錯:update mysql.user set authentication_string=("123456") where user="root";
建議使用:alter user 'root'@'localhost' identified with mysql_native_password by '123456';
13.mysql種建立使用者、修改host的值及更新
使用lsof|grep delete來檢視。
然後使用kill -9+ 程序號刪除程序,比如 kill -9 7410,程序號時lsof|grep delete查詢結果的第二列。
15.基於c++11的執行緒池(threadpool),簡潔且可以帶任意多的引數 - _ong - (cnblogs.com)
學習使用執行緒池。
16.enum的大小為4位元組,可以通過sizeof來測試。
詳見:列舉型別enum詳解——c語言 - 藍海人 - (cnblogs.com)
重點:
typedef enum weekmy;
那麼my等價於 enum week
17.cmake編譯型別
relwithdebinfo
18.
windows下在c++程式中執行powershell指令,
system(sss.c_str());注意:彷彿 \ 也能夠使用,但是在遇到數字時需要使用到雙斜槓-- \\ ,
詳見:(8條訊息) c/c++中system()函式詳解_阿桑的專欄-csdn部落格_c++ system函式
19.c語言#if、##ifdef、#ifndef的用法詳解,c語言條件編譯詳解 (biancheng.net)
#if _win32
printf("this is windows!\n");
#else
printf("unknown platform!\n");
#endif
#if __linux__
printf("this is linux!\n");
#endif
20.
(13條訊息) 函式返回char* 的解決方案_芒果兒-csdn部落格_返回char*
線性鍊錶基本操作實現(C C )
函式結果狀態 define true 1 define false 0 define ok 1 define error 0 define infeasible 1 define null 0 define overflow 2 include include include using names...
佇列的基本操作(順序結構)C C
順序結構的佇列,大多情況下對空間的申請比較死,想了個辦法 用string形式來儲存佇列元素,對於new的方式,我也實在想不出夠準確的申請方法。c語言式 include include using namespace std struct queue void initqueue queue q bo...
詳細的單鏈表基本操作C C 實現
include include include includeusing namespace std typedef struct snode lnode int listinsert lnode l,int i,int e 結點插入指定位置 if p j i 1 如果不存在指定位置 void cr...