Time of Update: 2018-12-03
下面是原始碼:-------------------------------------------------------------------------------------#include<iostream>#include<time.h> //輔助函數SetRandElem()產生隨機種子using namespace std;#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define
Time of Update: 2018-12-03
下面是原始碼:-----------------------------------------------------------//二叉樹的非遞迴實現,慢慢體會~!#include <iostream>using namespace std;typedef char TElemType;typedef struct BTNode{ struct BTNode *_lchild; TElemType _data; struct BTNode
Time of Update: 2018-12-03
下面是原始碼:-----------------------------------------------------------#include<iostream>#define OK 1#define ERROR 0#define ELEMS 10#define LINK(X) static_cast<Link>(X)using namespace std;typedef struct LNode{ int data; struct LNode
Time of Update: 2018-12-03
過去我用VC寫的WebBrowser和JS互動時,遇到需要傳遞數組時, 總是使用SafeArray , 就是VBarray . 儘管我知道可以通過介面直接建立 JS array , 但是我們都知道vc 實現還是很麻煩,很瑣碎, 所以一直用SafeArray.現在用c#寫的時候,就遇到問題了.我的一個IExternal介面中的函數無法傳遞 SafeArray .我剛開始代碼是這樣的: [return: MarshalAs(UnmanagedType.SafeArray ,
Time of Update: 2018-12-03
之前的文章 "http://blog.csdn.net/norsd/archive/2008/09/13/2921389.aspx" 實現了一個WebBrowser. 但是萬物總不是完美的, 最近有網友問, GetHTMLDocumentX 系列函數的實現,是否需要Release. 當時我回答不需要. 我是這樣考慮的: WebBrowser 類只提供一個(系列) IHtmlDocumentX* 指標, 在析構的時候 Release.
Time of Update: 2018-12-03
C# WebBrowser 比如 IHTMLDocument2/3 中開始有 onclick , onxxxxxx , attachEvent 之類好用的屬性.比如 attachEvent( string strEvent , object oDispatch ) ; strEvent 自不必說, oDispatch卻要說一下. 在c++中 , oDispatch 是一個 IDispatch* , 這個IDispatch什麼也不做,除了Invoke 函數處理dispId==0.當dispId==
Time of Update: 2018-12-03
下面是原始碼:------------------------------------------------#include <iostream>#include <string>#include <vector>using namespace std; typedef struct HChar{ char _char; int _weight;}HChar,*WcharPtr;typedef struct HTNode { HChar
Time of Update: 2018-12-03
C++物件導向的一個重要特性就是多態,下面的代碼示範了多態的特性。附運行:下面是程式原始碼:#include <iostream>using namespace std;class shape{//題目要求public: virtual double area() = 0; virtual void printshapename() = 0;};//declare circle classclass circle : public
Time of Update: 2018-12-03
下面是原始碼:-------------------------------------------------------------#include<iostream>using namespace std;#define OK 1#define ERROR 0typedef int Status;typedef struct QNode { int data; struct QNode *next;}QNode,*QNodePtr;///////////////////////
Time of Update: 2018-12-03
下面是原始碼:---------------------------------------------------------#include<iostream>#include<cstdlib>using namespace std;class CHESS{public: CHESS(); void setStep(bool& ipjudge);//雙人對戰輪流走棋函數 void setStepC(bool&
Time of Update: 2018-12-03
1. STL中Map內部是怎麼實現的?答:紅/黑樹狀結構.二叉樹在平衡時或者葉子結點到根結點的高度在一定的範圍內時工作起來是最有效。紅/黑樹狀結構演算法是平衡樹的一種演算法。這個名字就是由於樹的每個結點都被著上了紅色或者黑色,結點所著的顏色被用來檢測樹的平衡性。在對結點插入和刪除的操作中,可能會被旋轉來保持樹的平衡性。平均和最壞情況插入,刪除,尋找時間都是O(lg n)。詳細內容請參考 Cormen [2001]。理論一個紅/黑樹狀結構是一顆二叉尋找樹,具有下列的屬性:1.
Time of Update: 2018-12-03
1. What is displayed when f() is called given the code:class Number {public: string type; Number(): type(“void”) { } explicit Number(short) : type(“short”) { } //這裡顯式構造,防止隱式轉換. Number(int) : type(“int”) { }};void Show(const Number& n) { cout
Time of Update: 2018-12-03
介面很簡單,只有一個"Button1"按鈕,按下按鈕後,自動開始移動大圓容器內的小圓,到局部最小值如果不滿足條件,則為勢能最大或勢能最小的圓尋找一個隨機位置重新進行計算和移動圓的位置,該演算法的思想來自於黃文奇、許如初編寫的《近世計算理論導引----NP難問題的背景、前景及其解演算法研究》 Page 62。using System;using System.IO;using System.Collections;using System.Collections.Generic;using
Time of Update: 2018-12-03
函數名與函數指標一 通常的函數調用 一個通常的函數調用的例子://自行包含標頭檔void MyFun(int x); //此處的申明也可寫成:void MyFun( int );int main(int argc, char* argv[]){ MyFun(10); //這裡是調用MyFun(10);函數 return 0;}void MyFun(int
Time of Update: 2018-12-03
// PrintBMPPixel.c// c 語言讀取BMP格式檔案原始碼// 可同時處理沒有壓縮的BMP格式的二值映像, 索引映像, 真彩色映像。#include <stdio.h>#include <Windows.h> // 位元影像檔案頭typedef struct tagBMPFILEHEADER{unsigned short bfType; // 2 bytesunsigned long bfSize; // 4 bytesWORD
Time of Update: 2018-12-03
轉載自(http://www.cplusplus.com/reference/clibrary/cstdio/fflush/)int fflush ( FILE * stream );Flush streamIf the given stream was open for writing and the last i/o operation was an output operation, any unwritten data in the output buffer is written
Time of Update: 2018-12-03
在我們討論多態的時候,先看看什麼是寫入程式碼和軟編碼:寫入程式碼就是把代碼寫死了,導致彈性不足,降低了可擴充性,例如在代碼裡的if...else...switch...case...這些代碼通常都屬於寫入程式碼,項目中的這些代碼多了,就相當於說明這個代碼的靈活性、擴充性、彈性等等的少了。所以,我們要盡量使用軟編碼,通俗點就是“別把話說死了,留點轉彎的餘地”
Time of Update: 2018-12-03
轉載請註明:一雨田的專欄(http://blog.csdn.net/dylgsy) 很久以前就想寫個C++ 的類解析器了,終於花了一晚上時間,寫了一個C++ 標頭檔和 CPP檔案的解析。其實跟我上篇“編譯原理”的文章說的一樣,詞法分析和文法分析最基本就是一堆 if-else 或者 switch-case。不要被什麼有窮自動機嚇倒了。。。 下面的代碼是一個基本的詞法和文法分析,能工作,但現在這個實驗品,肯定不會很完善,請各位看官見諒。 能解析出來所包含的標頭檔、類名(輸入 .
Time of Update: 2018-12-03
原文連結:
Time of Update: 2018-12-03
在使用C++ Builder的時候,VCL控制項為我們提供了非常方便的重用,但往往第三方提供的控制項未必能全部滿足自己的需求。所以有時候自己想為第三方控制項擴充一些行為以便自己重用。有什麼辦法可以做到呢?為VCL控制項的行為做擴充當然最好的方法是改VCL的代碼,但是如果對PASCAL語言不熟悉,或者想嘗試利用C++ 的方法來做的話(C++