Time of Update: 2018-12-05
使用vs2005。#include "stdafx.h"#include <windows.h> // for EXCEPTION_ACCESS_VIOLATION#include <excpt.h>#include <iostream>using namespace std;int main(int argc, _TCHAR* argv[]){ int i = 1; int j = 0;__try{ i /= j;
Time of Update: 2018-12-05
/*與平衡樹不同(平衡樹是具有非常小的深度的,這也意味著到達任何一個節點所經過的邊數很少),左偏樹並不是為了快速存取所有的節點而設計的,它的目的是快速存取最小節點以及在對樹修改後快速的恢複堆性質。左偏樹是一種可合并堆,常用於優先順序隊列。左偏樹有兩個性質:1)堆的性質(注意:一般堆是完全二叉樹,但這裡不是):A[parent(i)]>=A[i] or
Time of Update: 2018-12-05
強制回應對話方塊程式: LRESULT CALLBACK DialogProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam){ switch(uMsg) { case WM_INITDIALOG: //MoveWindow(hWnd,100,100,500,300,FALSE); SetWindowPos(hWnd,NULL,200,200,0,0,SWP_NOSIZE);
Time of Update: 2018-12-05
其實就是兩個[]疊加起來,具體怎麼實現看代碼。#include <iostream>#include <string>using namespace std;template <class T> class arr;template <class T> class arrBody{ private: friend class arr<T>; T* data; int row,col,current_row;
Time of Update: 2018-12-05
轉自http://www.cppblog.com/bidepan2023/archive/2007/07/20/28419.aspx Q: 如何開啟一個應用程式? ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW );或 ShellExecute(this->m_hWnd,"open","notepad.exe","c://MyLog.log","",SW_SHOW );正如您所看到的,我並沒有傳遞程式的完整路徑。Q
Time of Update: 2018-12-05
到百度搜尋“仿射變換”,有很多介紹的。 這是vs2008中的樣本:VOID Example_TransPoints(HDC hdc){ Graphics graphics(hdc); Pen pen(Color(255, 0, 0, 255)); Point points[5] = { Point(50, 100), Point(100, 50), Point(150, 125), Point(200, 100), Point(250
Time of Update: 2018-12-05
請看此例,使用vc6.0#include "stdafx.h"#include<iostream>using namespace std;void swap2(int& a,int& b);//聲明;引用void swap3(int* a,int* b);void swap2(int& a,int& b)//定義;引用...{ int temp=a; a=b; b=temp;};void swap3(int* a,int* b)...
Time of Update: 2018-12-05
水平有限,請多指正! 裝飾者模式(Decorator)樣本 例子改編自《設計者模式解析(第二版)》214頁,人民郵電出版社 意圖:動態給一個對象添加職責;即提供了“隨插即用”方法,不用重新編譯已有部分。 問題:要使用的對象將執行所需的準系統。但是,可能需要為這個對像添加某些功能,這些附加的功能可能發生在對象的準系統之前或之後。解決方案:可以無需建立子類而擴充一個對象的功能 優點:類的階層大小和複雜度有了很大程度的降低
Time of Update: 2018-12-05
//在windows系統工作列的托盤中顯示表徵圖 //使用vc6.0++ //代碼改編自《TCP/IPX協議及網路編程技術》第22章,羅軍舟等著,清華大學出版社 // // 托盤指的是windows桌面視窗右下角顯示表徵圖的地區 // 管理托盤表徵圖的函數是Shell_NotifyIcon // 為了簡化使用,定義了CyctNotifyIcon類,封裝了Shell_NotifyIcon // 該類用於構建、維護工作列表徵圖,主要目的是為了使用者提供基於任務 //
Time of Update: 2018-12-05
HBRUSH CPenWidthsDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){ // Call the base class implementation first! Otherwise, it may // undo what we're trying to accomplish here. HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); //
Time of Update: 2018-12-05
先看一下策略模式的UML類圖: 從類圖可以看出,策略模式基本和簡單原廠模式沒什麼區別,從我的理解他們兩個最大的區別就是:簡單原廠模式是實現對象的多樣性,而策略模式適合類中的成員以方法為主; 簡單原廠模式只能解決對象建立問題,對於經常變動的演算法應使用原則模式。 放代碼看看吧:Cpp代碼 //策略基類 class COperation { public: int m_nFirst; int m_nSecond;
Time of Update: 2018-12-05
//全排列演算法://// 思路很簡單很經典,目的是由小到大依次輸出結果;非遞迴方法// 不知道該怎樣描述,所以給個例子://例子:// 假如當前排列dbeca,求其下個排列(經過人工排列,結果顯然是dcabe)。// 1)從右向左尋找第一個由小到大的(長度為2的)字串,這裡是be// 2)那麼b後面是字串eca,其中比b大的最小字元是c// 3)將b和c交換,則現在的排列是dceba//
Time of Update: 2018-12-05
訪問者模式是一種分離對象資料結構與行為的方法,通過這種分離,可以為一個已存在的類或類群(即被訪問者)增加新的操作(即訪問者)而無需為它們作任何修改。訪問者模式屬於行為型模式。 為什麼要使用訪問者模式? 如何擴充一個現有的類階層來實現新行為?一般的方法是給類添加新的方法。但是萬一新行為和現有物件模型不相容怎麼辦?還有,類階層設計人員可能無法預知以後開發過程中將會需要哪些功能。以及,如果已有的類階層不允許修改代碼,怎麼能擴充行為呢?
Time of Update: 2018-12-05
// LinkTableTest.cpp : 定義控制台應用程式的進入點。//#include "stdafx.h"#include <iostream>;using namespace std;//學生結構體,用於構建鏈表struct student{ //string name; char name[20]; int age; student* nextStu;};//程式入口void main(){ student c =
Time of Update: 2018-12-05
程式改自http://zhidao.baidu.com/question/57378776.html其它參考http://www.vckbase.com/document/viewdoc/?id=1301 對於精確度要求更高的定時操作,應該使用QueryPerformanceFrequency()和 QueryPerformanceCounter()函數。這兩個函數是僅供Windows 95及其後續版本使用的精確時間函數,並要求電腦從硬體上支援精確定時器。 樣本:#include
Time of Update: 2018-12-05
在c#中,“[...]”這個叫做Attribute,一般翻譯為“特性”,而不是“屬性”(因為“屬性”已代表其他意思)特性是一個繼承自System.Attribute類的類,其實特性和注釋(即“/* ... */”)類似,是用於描述程式集、類型、成員的“備忘資訊”,和注釋不同的是:注釋是給“人”看的,而特性是給“編譯器”看的,舉例來說:[ServiceContract] 這個特性告訴編譯器,該類型(指IInterface1)是一個服務契約,[OperationContract]
Time of Update: 2018-12-05
文章改自:http://hi.baidu.com/hacknothack/blog/item/4ca77710bc8e97fdc3ce79ad.html使用vc6.0通過 #include "stdafx.h"#include<windows.h>#include<wininet.h>#include<iostream.h>#pragma comment(lib,"wininet.lib")void main(){DWORD byteread=0;char
Time of Update: 2018-12-05
一下介紹的內容均在vc6.0 MFC程式調試通過。 【一】熱鍵的使用主要使用RegisterHotKey和UnregisterHotKey兩個API函數,具體介紹請看MSDN。這裡以編輯框作為樣本,先建一個CEdit的衍生類別 CMyEdit2。1)響應WM_HOTKEY訊息 RegisterHotKey可以向視窗發送WM_HOTKEY訊息,所以先定義WM_HOTKEY訊息映射。 在.h檔案中加入afx_msg LONG OnHotKey(WPARAM wParam,LPARAM
Time of Update: 2018-12-05
#include <iostream> #include <stdlib.h>using namespace std;typedef int DataType; //是這樣用嗎?struct DArray{ int capacity; //數組容量 DataType *parray; //動態數組其實就是一個指向一塊內在的指標. int count; //已使用的元素個數 void (*
Time of Update: 2018-12-05
第一篇一些同學問我,如何學好C++,我沒有別的辦法給你們,唯一的辦法就是讀書,讀大量的書,就可以解決。要把C++作為日常語言,而不是一種程式語言,這樣就好辦了。有人又要問我,那麼我應該讀什麼書才好?沒有時間怎麼辦?我只能對你們說,沒時間的話,就別學C++了,做你們喜歡做的事。生活中沒有C++,也同樣美好。如果你準備學,一定要學好,那麼我開個書單,應該問題不是甚大。首先肯定要讀一讀Bjarne Stroustrup的The Design and Evolution of