Time of Update: 2018-12-05
引言注:由於沒有啟用任何方程式編輯器,為表示方便:以下涉及時間複雜度表示時,其漸近符號用以下符號代替:先來看一個定理:任意一個比較排序演算法在最壞情況下,都需要做
Time of Update: 2018-12-05
(1)struct實現classstruct內部變數等效於class成員變數;struct內建函式指標等效於class成員函數;typedef struct point_t{int x;int y;void (*setPoint)(struct point_t *pP,int x, int y);//傳遞point_t指標參數,以確定被操作對象} point_t;void setPoint(struct point_t *pP,int x, int y){pP->x = x;pP->
Time of Update: 2018-12-05
// KMP.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "string.h"/*** 產生一個數組prefixArray,該數組指明:當pattern直到第i個字元匹配但下一個字元不匹配時,* pattern應該如何向前移動使得匹配首碼尺寸最大,prefixArray[i]移動後pattern匹配首碼的最大索引* 這樣向前移動個數為i-prefixArray[i]
Time of Update: 2018-12-05
Linux在終端出輸出顏色 #include <stdio.h>; int main (int argc, char **argv) { printf ("\033[31mThe color of this line is red, %s!\033[0m", "ha ha"); } 格式:
Time of Update: 2018-12-05
1、inline函數的定義要和聲明在同一個檔案中,不管它是在類內定義還是在類外定義。2、帶預設參數的成員函數,預設參數的值若在函式宣告時指定了,則在函數定義時不要指定,否則編譯報錯:重定義預設參數。3、關於const: 1)類的常資料成員的初始化只能通過建構函式的參數初始化表完成,不能在建構函式體中賦值; 2)const對象的所有資料成員都是const的,但成員函數不一定;const對象只能調用const成員函數,不能調用非const成員函數;
Time of Update: 2018-12-05
第二部分 容器和演算法 [第9章 順序容器] 三種順序容器:vector、list、deque。三種順序容器適配器:stack、queue、priority_queue。 容器容納特定類型對象的集合,所有容器都是類模板。容器只定義了少量操作,大多數額外操作都由演算法庫提供。 順序容器的元素排列順序與元素值無關,而由元素添加到容器中的順序決定。 容器元素類型必須滿足兩個要求:元素類型支援賦值運算、元素類型的對象可複製。
Time of Update: 2018-12-05
1、 聲明外部變數 現代編譯器一般採用按檔案編譯的方式,因此在編譯時間,各個檔案中定義的全域變數是 互相透明的,也就是說,在編譯時間,全域變數的可見域限制在檔案內部。下面舉一個簡單的例子。建立一個工程,裡面含有A.cpp和B.cpp兩個簡單的C++源檔案: //A.cpp int i; void main() { } //B.cpp int
Time of Update: 2018-12-05
“Pointer” is very important for programming Language, its usage is very freely. So pointer brings some insecurity factors to software’s development. For this reason, the conception of pointer is being canceled in JAVA programming language (but it
Time of Update: 2018-12-05
書寫和列印64位整數long long ll = 123456789123456789LL;printf("%lld/n", ll); #include <sys/fcntl.h>1. #include <*.h> 是ANSI C的寫法2. fcntl.h 在 sys下3. 檔案IO函數及其Constent 定義都在fcntl.h中 * Emacs 並不像自已想象的那麼壞. perror 位於stdio.h中,它用於協助使用者以字串的形式輸出系統錯誤 f*
Time of Update: 2018-12-05
宏只是手段?!BEGIN_MESSAGE_MAP(CMyView,CView)ON_COMMAND(ID_FILE_PRINT,CView::OnFilePrint)END_MESSAGE_MAP()以上程式還是C++嗎?如果這樣使用宏,還不如專門開發一個語言叫C Macro Macro來進行windows開發! 引用孟岩信中的一句話:用C++來對Win32建模始終讓人感覺有點彆扭。本質上是因為C++的物件模型與Windows物件模型存在比較大的差別。比如說,Windows視窗可以接受任何新定義
Time of Update: 2018-12-05
一、定義:RTTI:Run Time Type Identification ,運行時類型識別:指程式能夠使用基類的指標或引用來檢索其所指對象的實際衍生類別型。二、使用方式:C++中有兩個操作符提供RTTI:(1)typeid 操作符:返回指標或引用所指對象的實際類型。(2)dynamic_cast 操作符:將基類類型的指標或引用安全地轉換為衍生類別型的指標和引用。 注:此二操作符只為帶有一個或多個虛函數的類返回動態類型資訊----即在運行時執行RTTI操作符;對於其他類型則返回靜態類型的資訊-
Time of Update: 2018-12-05
程式設計語言,具有共同特徵:均需要提供一些基本特徵集,如下:內建資料類型,如整型,字元型等(類型:點明含義及操作);運算式和語句:用於操縱上述類型的值;變數:用於對象命名;控制結構,如if,while用於有條件地重複執行一組動作;函數:用於把行為抽象成可調用的計算單元。擴充:大多數現代程式設計語言均採用兩種方式擴充上述基本特徵集: (1)允許程式員通過自訂資料類型擴充該語言; (2)提供一組庫常式(這些常式定義了一些並非內建在語言中的實用函數和資料類型)。
Time of Update: 2018-12-05
2.1 基本內建類型2.2 字面值常量2.3 變數 變數的類型--->決定了分配給變數的儲存空間大小(含義決定大小)和可以在其上執行的操作(操作)。 初始化--->C++支援兩種方式初始化(變數)的形式: (1)複製初始化:使用等號(=); (2)直接初始化:將初始化式放在圓括弧中。 下面來區分兩個概念:初始化VS賦值 (1)二者對於基礎資料型別 (Elementary Data Type)來說,差別不大
Time of Update: 2018-12-05
資料來源:http://blog.csdn.net/dongfengsun/article/details/15419261.已知String類定義如下:class String{public:String(const char *str = NULL); // 通用建構函式String(const String &another); // 拷貝建構函式~ String(); // 解構函式String & operater =(const String &rhs); /
Time of Update: 2018-12-05
文章目錄 (1)添加volatile修飾符時,輸出結果(程式碼同上):(2)無 volatile 修飾符時。輸出結果:(1)添加 volatile 修飾符時,輸出結果:(2)無 volatile 修飾符時,輸出結果: 一、結論聲明:不同於C語言的const變數修改問題(可以通過指標間接修改const變數的值),這裡只討論C++ 裡的const。C++ const
Time of Update: 2018-12-05
linux下為了多線程同步,通常用到鎖的概念。posix下抽象了一個鎖類型的結構:ptread_mutex_t。通過對該結構的操作,來判斷資源是否可以訪問。顧名思義,加鎖(lock)後,別人就無法開啟,只有當鎖沒有關閉(unlock)的時候才能訪問資源。它主要用如下5個函數進行操作。1:pthread_mutex_init(pthread_mutex_t * mutex,const pthread_mutexattr_t
Time of Update: 2018-12-05
#include<iostream>#include<cstdlib>using namespace std;class CharPair{public:CharPair(){}CharPair(char first, char second): first(first), second(second){}char &operator[](int index);private: char first;char second;};int
Time of Update: 2018-12-05
已移到:http://www.wypblog.com/archives/158求解問題如下:在本地磁碟裡面有file1和file2兩個檔案,每一個檔案包含500萬條隨機整數(可以重複),最大不超過2147483648也就是一個int表示範圍。要求寫程式將兩個檔案中都含有的整數輸出到一個新檔案中。要求:1.程式的已耗用時間不超過5秒鐘。2.沒有記憶體流失。3.代碼規範,能要考慮到出錯情況。4.代碼具有高度可重用性及可擴充性,以後將要在該作業基礎上更改需求。初一看,覺得很簡單,不就是求兩個檔案的並集
Time of Update: 2018-12-05
一、預先處理的由來: 在C++的曆史發展中,有很多的語言特徵(特別是語言的晦澀之處)來自於C語言,預先處理就是其中的一個。C++從C語言那裡把C語言前置處理器繼承過來(C語言前置處理器,被Bjarne博士簡稱為Cpp,不知道是不是C Program Preprocessor的簡稱)。 二、常見的預先處理功能: 前置處理器的主要作用就是把通過預先處理的內建功能對一個資源進行等價替換,最常見的預先處理有:檔案包含,條件編譯、布局控制和宏替換4種。
Time of Update: 2018-12-05
#include<iostream>#include<fstream>using namespace std;int main(){const int SIZE = 5; fstream inData; inData.open("rubbish.dat", ios::out | ios::binary); double array[SIZE] = { 1.2, 2.3, 3.4, 4.5, 5.6 };