Time of Update: 2017-02-27
隊列的特點是先進先出,如同日常生活中的排隊。隊列有加入隊尾,從隊頭刪除元素,取得隊尾元素 ,取得隊頭元素,取得隊列長度,判斷隊列是否為空白等操作。隊列也可以可以用順序表、鏈表實現,但隊列最好不要用順序表實現,因為元素排入佇列和刪除元素 中的一種操作總會引起全部元素的移動,效率極低(迴圈隊列除外)。隊列的實現非常簡單,下面用前面介紹的單鏈表實現。代碼:/** File : Queue.cs* Author : Zhenxing Zhou* Date : 2008-12-07*
Time of Update: 2017-02-27
我是在windows xp-sp2上使用SSHSecureShellClient-3[1].2.9.exe進行linux C編程的,下面先講一下怎麼使用這個軟體:在本地安裝SSHSecureShellClient-3[1].2.9.exe,在伺服器上建立使用者名稱和密碼,然後開啟SSH Secure Shell Client,enter鍵或者點擊quick
Time of Update: 2017-02-27
首先,我們看看這兩個圖,如圖1所示。一秒前:一秒後:怎麼樣?檔案夾變成資源回收筒了!不信?雙擊進入試試,裡面真的是資源回收筒哦。神奇吧!看過本文,你不但能變檔案夾為資源回收筒,還可以將它變成各種稀奇古怪的東東!首先要說明一下原理:在Windows資源管理員中,Desktop.ini和Folder.htt中定義了檔案夾的屬性,在Windows 9X下,我們可以在檔案夾中建一個Desktop.ini,並在其中輸入如下代碼:[.ShellClassInfo]Clisd={645FF040-5081-1
Time of Update: 2017-02-27
用於在接受到某個訊號之前,臨時用mask替換進程的訊號掩碼,並暫停進程執行,直到收到訊號為止。/*The sigsuspend() function replaces the current signal mask of the calling thread with the set of signals pointed to by sigmask and then suspends the thread until delivery of a signal whose
Time of Update: 2017-02-27
我們可能會經常寫出這樣的代碼:int add(int a , int b){return a + b;}當然,這是合理的寫法,使函數的傳回值為 int ,所以,調用函數後會返回一個int型的值。今天,我想討論的問題當然不是這個,請看下面這段代碼:char* Func_1(void){char str[30] =
Time of Update: 2017-02-27
普裡姆演算法介紹普裡姆(Prim)演算法,和克魯斯卡爾演算法一樣,是用來求加權連通圖的最小產生樹的演算法。基本思想對於圖G而言,V是所有頂點的集合;現在,設定兩個新的集合U和T,其中U用於存放G的最小產生樹中的頂點,T存放G的最小產生樹中的邊。從所有uU,v(V-U) (V-U表示出去U的所有頂點)的邊中選取權值最小的邊(u, v),將頂點v加入集合U中,將邊(u,
Time of Update: 2017-02-27
1.總體規則:不要隨意縮寫;2.宏、枚舉等使用全部大寫+底線;3.變數(含類、結構體成員變數)、檔案、命名空間、存取函數等使用全部小寫+底線,類成員變數以底線結尾,全域變數以g_開頭;4.參考現有或相近命名規範……命名規範最重要的一致性規則是命名管理,命名風格直接可以直接確定具名實體是:類型、變數、函數、常量、宏等等,無需尋找實體聲明,我們大腦中的模式比對引擎依賴於這些命名規則。命名規則具有一定隨意性,但相比按個人喜好命名,一致性更重要,所以不管你怎麼想,規則總歸是規
Time of Update: 2017-01-19
左旋轉字串題目:定義字串的左旋轉操作:把字串前面的若干個字元移動到字串的尾部。如把字串 abcdef 左旋轉 2 位得到字串 cdefab。請實現字串左旋轉的函數。要求時間對長度為 n 的字串操作的複雜度為 O(n),輔助記憶體為 O(1)。分析:網上看到解法很多種,就不詳細說明了。我採用的是數組不對稱的交換時間複雜度應該是O(n)。代碼實現(GCC編譯通過):#include "stdio.h"#include "stdlib.h" void
Time of Update: 2017-01-19
今天用ftruncate截斷檔案, 但怎麼都不能達到預料的效果, 截斷後檔案中的內容比較雜, 而且檔案大小也保持原來的.添加 fflush() 和 rewind() 後OK.以下是測試代碼:複製代碼 代碼如下:#include <stdio.h>#include <sys/types.h>#include <unistd.h>int main(){ FILE *fp; char *file = "tmp"; int
Time of Update: 2017-01-19
每個人、事物在不同的狀態下會有不同表現(動作),而一個狀態又會在不同的表現下轉移到下一個不同的狀態(State)。最簡單的一個生活中的例子就是:地鐵入口處,如果你放入正確的地鐵票,門就會開啟讓你通過。在出口處也是驗票,如果正確你就可以 ok,否則就不讓你通過(如果你動作野蠻,或許會有警示(Alarm),:))。有限狀態自動機(FSM)也是一個典型的狀態不同,對輸入有不同的響應(狀態轉移)。通常我們在實現這類系統會使用到很多的 Switch/Case 語句,Case
Time of Update: 2017-01-19
“解構函式”是建構函式的反向函數。在銷毀(釋放)對象時將調用它們。通過在類名前面放置一個波狀符號 (~) 將函數指定為類的解構函式。例如,聲明 String 類的解構函式:~String()。在 /clr 編譯中,解構函式在釋放託管和非託管資源方面發揮了特殊作用。解構函式通常用於在不再需要某個對象時“清理”此對象。請考慮 String 類的以下聲明:// spec1_destructors.cpp#include <string.h>class String {public:
Time of Update: 2017-01-19
static主要有三個作用:(1)局部靜態變數(2)外部靜態變數/函數(3)待用資料成員/成員函數 前兩種C和C++都有,第三種僅在C++中有,下面分別作以下介紹:一、局部靜態變數在C/C++中, 局部變數按照儲存形式可分為三種auto, static, register。其中register不常用到,下面主要說說auto和static的區別。1.
Time of Update: 2017-01-19
C++一維數組定義一維數組定義一維數組的一般格式為: 類型標識符 數組名[常量運算式];例如: int a[10];它表示數組名為a,此數組為整型,有10個元素。關於一維數組的幾點說明:1) 數組名定名規則和變數名相同,遵循標識符定名規則。2) 用方括弧括起來的常量運算式表示下標值,如下面的寫法是合法的: int a[10]; int a[2*5]; int a[n*2]; //假設前面已定義了n為常變數3) 常量運算式的值表示元素的個數,
Time of Update: 2017-01-19
C語言exp()函數:e的次冪函數(以e為底的x次方值)標頭檔:#include <math.h>exp()用來計算以e 為底的x 次方值,即ex 值,然後將結果返回。其原型為: double exp(double x);【傳回值】返回 e 的x 次方計算結果。注意,使用 GCC 編譯時間請加入-lm。【執行個體】計算e的10次方的值。#include <math.h>main(){ double answer; answer = exp (10);
Time of Update: 2017-01-19
今天做USACO 用到了檔案的操作。 之前做USACO只是格式化的些 寫 freopen("xxx.in","r",stdin) 和"freopen("xxx.out","w",stdout)" 百度百科上是這麼介紹的:函數名: freopen功 能:
Time of Update: 2017-01-19
對象並不是突然建立起來的,建立對象必須時必須同時建立父類以及包含於其中的對象。C++遵循如下的建立順序:(1)如果某個類具體基類,執行基類的預設建構函式。(2)類的非待用資料成員,按照聲明的順序建立。(3)執行該類的建構函式。即構造類時,會先構造其父類,然後建立類成員,最後調用本身的建構函式。下面看一個例子吧複製代碼 代碼如下:class c{public: c(){ printf("c\n"); }protected:private:};class b
Time of Update: 2017-01-19
C++實現簡單的學生管理系統//Student.cpp#include<iostream> using namespace std; struct Stu{ char no[10]; char name[16]; int math; int chi; double ave;}; class Student{public: Stu st; Student * next;public: Student(){} Student(Stu s) { st=s;
Time of Update: 2017-01-19
本文執行個體講述了c++線程池實現方法。分享給大家供大家參考。具體分析如下:下面這個線程池是我在工作中用到過的,原理還是建立一個任務隊列,讓多個線程互斥的在隊列中取出任務,然後執行,顯然,隊列是要加鎖的環境:ubuntu linux檔案名稱:locker.h#ifndef LOCKER_H_ #define LOCKER_H_ #include "pthread.h" class locker { public: locker(); virtual ~locker(); bool
Time of Update: 2017-01-19
本文執行個體講述了C語言實現在數組A上有序合并數組B的方法,分享給大家供大家參考。具體分析如下:題目:數組A和數組B均有序,數組A有足夠大記憶體來容納數組B,將數組B有序合并到數組A中分析:如果由前至後合并,複雜度將會是O(N2),這樣的複雜度顯然不是最優解,利用兩個指標指向兩個數組的尾部,從後往前遍曆,這樣的複雜度為O(n2)由此可以寫出下面的代碼:#include <iostream>#include <algorithm>#include <iterator&
Time of Update: 2017-01-20
標籤:過程 ace 建構函式 設計 操作符 數值演算法 nal getchar har 1、函數對象函數對象是STL提供的第四類主要組件,它使得STL的應用更加靈活方便,從而增強了演算法的通用性