Time of Update: 2015-08-04
標籤:優先隊列優先隊列利用堆實現,堆的實現在前面已經說過了,優先隊列的一個重要的操作是:1. heap_max O(1) 2. heap_extract_max O(lgn)3. heap_increase_key O(lgn)4, heap_insert O(lgn)下面是C語言實現#define MIN -100000int heap_max(struct heap *h){ return h->arr[1]
Time of Update: 2015-08-04
標籤:c++ 運算子多載 輸出符號重載 運算子有單目運算子和雙目運算子,分別跟一個運算元和兩個運算元。在c++裡面無論是那種他們都可以操作多種類型的的變數,例如+運算子a+b,a,b既可以是整型,也可以是浮點型(float),編譯器有一張符號表儲存了a,b的類型(可以自己去看編譯原理),當編譯器在翻譯a+b時根據其類型調用相應子程式處理。有時候我們覺得a,
Time of Update: 2015-08-04
標籤:計數排序計數排序是穩定排序,而且是線性時間內的排序演算法,時間複雜度是O(n + k)其中k是待排序數組的範圍。計數排序不是原址排序,空間複雜度是O(n + k)//k是指A中的數組範圍是0~k 包括0和kvoid count_sort(int A[], int B[], int n, int k){ int *C = (int *)malloc(sizeof(int) * (k + 1)); int i; for(i = 0; i <= k; i+
Time of Update: 2015-08-04
標籤:開發語言 c++ 右值引用是一個C++11特性,標記為T&&。GSG中定義:只為移動建構函數(Move constructor)和移動賦值操作(Move assignment)使用右值引用。並且不要使用std::Forward(提供的完美轉寄特性)。C++中右值指運算式結束時就不再存的臨時對象。在C++11中,右值分為純右值(即原始字面量,運算式產生的臨時變數等),以及一個將亡值(expiring
Time of Update: 2015-08-04
標籤:c++ 線程池 源碼 共用一份線程池的代碼: http://download.csdn.net/detail/luomoshusheng/8957489
Time of Update: 2015-08-03
標籤:副作用:是對資料對象或檔案的修改 比如:dada = 5;把dada的值設定為5就是語句dada = 5;的副作用而增量和遞減運算子也是作為副作用而是用。順序點:所用副作用都會在進入下一步前被計算;c語言中‘;’代表一個順序點舉例:while (n++ < 10) printf (“%d \n”
Time of Update: 2015-08-03
標籤:猜數字遊戲#include <stdio.h>#include <stdlib.h>#include <time.h>int main(){ int start=1; while(start) { printf("請選擇:\n"); printf("1:開始遊戲\n"); printf("0:離開遊戲\n");
Time of Update: 2015-08-03
標籤:c++11 並發 1. 等待線程完成若不等待線程完成,我們就需要確保該線程訪問的資料都是有效,直到該線程完成為止。比如如下代碼,線程函數持有局部變數的指標或引用,當函數退出時,線程尚未執行完成。#include <thread>#include <iostream>// 線程持有局部變數的指標struct func{int *i;func(int *i_) : i(i_){}void
Time of Update: 2015-08-03
標籤:1、C++一個強大而低級的工具是,可以使用指標來直接操縱電腦記憶體,這也是C++相對於JAVA、C#和Visual Basic等語言的優點之一。2、什麼是指標?指標是儲存記憶體位址的變數。3、能夠使用指標以及在底層操縱記憶體是C++被選擇用於編寫嵌入式和即時應用程式的原因之一。4、指標定義的時候一定要初始化,沒有被初始化的指標被稱為失控指標,是很危險的。 int *pAge=0;
Time of Update: 2015-08-03
標籤: 這幾個函數和變數是針對可變參數函數的,什麼是可變參數函數呢,最經典的莫過於printf和scanf,這兩個函數的聲明如下:1 int printf(const char *format, ...);2 3 int scanf(const char *format,
Time of Update: 2015-08-03
標籤:何要使用虛基類: 為何避免多層繼承中出項多個公用基類所造成的歧義現象虛基類用法 衍生類別繼承基類時,加上一個virtual關鍵詞則為虛擬基類繼承。在程式運行中,我們發現class
Time of Update: 2015-08-03
標籤:本文實現了一個多項式的類,類中重載了多項式的加法、減法、乘法,並且對>> 和 << 進行了重載。其中多項式的輸入(輸出)格式為: K N1 aN1 N2 aN2 ... NK aNK其中K表示多項式的係數,NK表示第K項的係數aNk相應的係數,並且多項式的係數遞減的序列。 1 //polynomial.h 2 #include <iostream> 3 #include <vector> 4
Time of Update: 2015-08-03
標籤:c++ c++編程思想 c語言 習題 一.相關知識點使用引用時有一定的規則:1) 當引用被建立時,它必須被初始化。(指標則可以在任何時候被初始化。)2) 一旦一個引用被初始化為指向一個對象,它就不能被改變為對另一個對象的引用。(指標則可以在任何時候指向另一個對象。)3) 不可能有NULL引用。必須確保引用是和一塊合法的儲存單元關連。僅當準備用傳ࠆ
Time of Update: 2015-08-03
標籤:1.#include <stdio.h> #include 是C語言的預先處理指令之一,所謂預先處理,就是在編譯之前做的處理,預先處理指令一般以 # 開頭#include 指令後面會跟著一個檔案名稱,前置處理器發現 #include
Time of Update: 2015-08-04
標籤:這段時間在做一個關於資料互動的項目。接收到客戶發送過來的檔案後,通過Windows服務將檔案按一定的規則分發到不同的MQ訊息佇列,然後再由不同的處理常式處理。雖然在編碼中儘可能的考慮到了異常以及記錄了詳細的日誌,但是服務還是偶爾抽風停掉了,這樣就造成了檔案堆積,客戶請求得不到及時的響應。所以需要一個守護進程來保證服務始終是啟動狀態的。首先,要保證需要監控的進程可配置,以及指定日誌的儲存位置。在App.config中配置日誌儲存路徑以及需監控進程和對應的exe可執行程式的位置(之前考慮是如果
Time of Update: 2015-08-03
標籤:自訂菜單效果 rendermode 為了實現自訂的Menu和ContextMenu效果,可以通過派生ProfessionalColorTable類,在自訂類中通過重寫ProfessionalColorTable類的相關屬性,產生自訂菜單效果。using System.Drawing;using System.Windows.Forms;public class CustomToolS
Time of Update: 2015-08-03
標籤://writeusing System;using System.IO;using System.IO.Pipes;using System.Security.Principal;using System.Threading;namespace memoryWrite{ class Program { static void Main(string[] args) { try {
Time of Update: 2015-08-03
標籤: Message Queue(微軟訊息佇列)是在多個不同的應用之間實現相互連信的一種非同步傳輸模式,相互連信的應用可以分佈於同一台機器上,也可以分佈於相連的網路空間中的任一位置。它的實現原理是:訊息的寄件者把自己想要發送的資訊放入一個容器中(我們稱之為Message),然後把它儲存至一個系統公用空間的訊息佇列(Message
Time of Update: 2015-08-03
標籤://記憶體寫using System;using System.IO;using System.IO.MemoryMappedFiles;using System.Threading;namespace memoryWrite{ class Program { static void Main(string[] args) { using (MemoryMappedFile mmf =
Time of Update: 2015-08-04
標籤:對象與對象的關係 1、對象與對象的關係依賴關聯組合 常常討論對象與對象關係時會提供兩個屬於:內聚性,耦合性內聚一般指功能上的指向性耦合一般指關聯上的依賴性 2、依賴:對象之間最弱的一種關聯方式,是臨時性的關聯。代碼中一般指由局部變數、函數參數、返回值建立的對於其他對象的調用關係。