原创 當質數大於3時,證明質數的平方減1總能被24整除

設p爲質數,下面證明【當p≥5,且p爲素數,一定有24|p^2-1】。 注意到,所有滿足條件的p均爲奇數,不妨設它爲2n+1。 於是, p^2-1=(2n+1)^2-1=4n^2+4n=4n(n+1) 顯然,對於所有奇素數p,一定滿足4|

原创 C++ new操作符實現

目錄   一、new操作符 二、operator new 三、placement new 一、new操作符 C++中new操作符是語言內置的,不能被重載,實現了兩個功能:內存分配、調用對象構造函數。其中內存分配調用標準函數operator

原创 使用boost庫實現單例模式

單例模式是最常使用的設計模式之一,特別在跨文件編程時使用的最多。 #include<boost/noncopyable.hpp> #include<pthread.h> #include<stdlib.h> template<typ

原创 C++ 一些關鍵字的用法

目錄   1 const關鍵字 1.1 成員變量 1.2 const成員函數 2 mutable關鍵字 3 volatile關鍵字 4 static關鍵字 5 using關鍵字 6 sizeof關鍵字 1 const關鍵字 1.1 成員變

原创 使用簡單工廠實現配置文件reload

一、使用場景 進程對多個配置進行reload,reload前判斷配置的版本號是否有升級 二、簡單實現 使用簡單工廠思想進行實現。 進程初始化時,加載對應的配置,保存當前配置的版本號以及加載的回調函數,並註冊到全局的map 配置reload

原创 迷宮程序的實現

#include<iostream> #include<stack> #define N 3 #define M 3 using namespace std; struct STEP //保存座標點 { int x;

原创 C++對C的拓展

  目錄   一、bool類型關鍵字 二、引用 三、輸入輸出 四、函數參數 五、string類 六、左值 一、bool類型關鍵字 C++在C語言的基礎類型上新增了布爾類型(bool),bool可取的值有兩個:true、false,佔用一個

原创 C語言實現函數重載

C語言實現函數重載 c語言中不允許有同名函數,因爲編譯時函數命名是一樣的,不像c++會添加參數類型和返回類型作爲函數編譯後的名稱,進而實現重載。如果要用c語言顯現函數重載,可通過以下方式來實現: 使用函數指針來實現,重載的函數不能使用同名

原创 Automake自動編譯

Automake自動編譯 1、創建源代碼文件hello.h,hello.cpp。執行autoscan命令生成configure.scan,cp configure.scan configure.ac,編輯configure.ac文件,如下

原创 C++計算數組大小

目錄   1 c語言計算數組大小 2 c++計算數組大小 1 c語言計算數組大小 c語言通過如下方式可以獲取數組大小: int arr[] = {23, 34, 32}; int arr_size = sizeof(arr)/sizeo

原创 C++ coredump實例解析

一、背景     經過重重調試後,看到編譯成功的那一刻,內心充滿歡喜。當程序一運行,卻經常出現coredump的情況,此時內心是崩潰的。我想程序員經常會碰到這種情況,尤其使用c++語言編寫代碼,由於沒有自動內存管理,經常會出現coredu

原创 線程設置私有變量

#include <stdio.h> #include <pthread.h> #include <stdlib.h> //線程存儲變量,用於一個線程內部的全局變量 static pthread_key_t pid_k

原创 編譯調試

目錄   1 編譯 1.1 編譯流程 1.2 automake生成Makefile 1.3 編寫Makefile.am 1.4 編寫bMakefile 1.5 底層查看命令 2 gdb調試命令 1 編譯 1.1 編譯流程 預處理 gcc

原创 C/C++字符串處理

目錄   1 snprintf函數 2 轉換函數比較 3 string中函數的用法 1 snprintf函數 1、寫入目標串的字符數不超過size,包括'\0' 2、必須格式化參數,防止源串包含%s等格式化字符,會在後面尋找字符串指針,若