Time of Update: 2017-01-19
本文所述演算法即假設要用很多個教室對一組活動進行調度。我們希望使用儘可能少的教室來調度所有活動。採用C++的貪心演算法,來確定哪一個活動使用哪一間教室。對於這個問題也常被稱為區間圖著色問題,即相容的活動著同色,不相容的著不同顏色,使得所用顏色數最少。具體實現代碼如下://貪心演算法#include "stdafx.h"#include<iostream>#define N 100using namespace std;struct Activity{ int number;
Time of Update: 2017-01-19
一般在網上查到的資料中向Server2000儲存圖片代碼比較多,從資料庫中讀取圖片並顯示也不少,但是把圖片從資料庫中位元據轉換為原圖片儲存在本地,就很少有C++代碼了。本文就此問題一步一步地講一講解決的方法:一、使用資料庫前的準備我們使用ADO,是用_ConnectionPtr,_RecordsetPtr來操縱資料庫的。還有一個_CommandPtr,本程式沒有使用它。為了使用ADO,需要匯入ADO動態連結程式庫。在工程的stdafx.h檔案中,添加如下代碼://匯入ADO#import "C:
Time of Update: 2017-01-19
本文以執行個體形式講述了基於C++實現簡單的希爾排序Shell Sort的方法,是一個很經典的演算法,具體實現代碼如下:#include <iostream>using namespace std;void ShellSort(int* iArray,int length){ //初始化jump等於length int jump = length; //標記本趟檢測是否進行了交換, // 若進行了 則還有下次從頭開始的檢測, // 否則停止,繼續改變jump的值 做另一趟排序
Time of Update: 2017-01-19
本文以執行個體形式講述了C++實現哈夫曼樹簡單建立與遍曆的方法,比較經典的C++演算法。本例實現的功能為:給定n個帶權的節點,如何構造一棵n個帶有給定權值的分葉節點的二叉樹,使其帶全路徑長度WPL最小。據此構造出最優樹演算法如下:哈夫曼演算法:1. 將n個權值分別為w1,w2,w3,....wn-1,wn的節點按權值遞增排序,將每個權值作為一棵二叉樹。構成n棵二叉樹森林F={T1,T2,T3,T4,...Tn},其中每個二叉樹都只有一個權值,其左右字數為空白2.
Time of Update: 2017-01-19
本文以執行個體形式描述了C++實現迷宮演算法。本例中的迷宮是一個矩形地區,它有一個入口和一個出口。在迷宮的內部包含不能穿越的牆或障礙。障礙物沿著行和列放置,它們與迷宮的矩形邊界平行。迷宮的入口在左上方,出口在右下角本執行個體迷宮演算法的功能主要有:1.自動產生10*10迷宮圖2.判斷是否有迷宮出口,並且畫出路線圖具體實現代碼如下:# include <iostream># include <list># include <sys/timeb.h>#
Time of Update: 2017-01-19
本文所述為漢諾塔演算法的C++代碼的經典實現方法。漢諾塔問題描述:3個柱為a、b、c,圓盤最初在a柱,藉助b柱移到c柱。需要你指定圓盤數。具體實現代碼如下:#include <iostream>using namespace std;int times = 0; //全域變數,搬動次數//第n個圓盤從x柱搬到z柱void move(int n, char x, char z){ cout << "第" << ++times << "步: 將" &
Time of Update: 2017-01-19
本文通過一個C程式執行個體對C語言中自動隱式轉換與類型強制轉換的注意點進行深入分析,詳情如下:先看一個C程式:#include<stdlib.h>#include<stdio.h>#include<conio.h>double proc(int q){int n;double sum,t;//本例的關鍵就在這幾個變數的類型上sum = 2.0;while(sum<=q){t=sum;//sum = sum+(n+1)/n;//自動隱式轉換sum
Time of Update: 2017-01-19
本文簡述了基於VC++實現的調用系統時間的簡單樣本,這裡只列出主要部分代碼,供大家參考一下,具體如下:首先要注意添加標頭檔:#include <Windows.h>然後就簡單了,這裡只粘出主要用法如下:#ifdef _SECURITY SYSTEMTIME sysTime; ZeroMemory(&sysTime, sizeof(sysTime)); GetLocalTime(&sysTime); if (sysTime.wYear > _DURE_DATE_YEAR)
Time of Update: 2017-01-19
C++中的Template作用是把僅類型不同但功能相似的函數合并在一起,但是有時候template中的函數並不能滿足所有的類型調用。如下所示:template <class Kty>inline int hash_wrap(const Kty& k){return
Time of Update: 2017-01-19
本文所述執行個體是從一個Red Hat開源項目裡面扒出來的,非常實用!讀者還可以根據自身需求加以修改!完整源碼如下:Log.h檔案部分:#ifndef __LOG_H__#define __LOG_H__#include <stdio.h>#include <tchar.h>#include <crtdbg.h>#include <windows.h>#include <time.h>#include
Time of Update: 2017-01-19
本文以一個完整執行個體形式介紹了C++實現擷取IP、子網路遮罩、網關、DNS等本機網路參數的方法,供大家參考,具體的完整執行個體如下:#pragma comment(lib,"Ws2_32.lib")#include <Iphlpapi.h>#pragma comment(lib, "Iphlpapi.lib")using namespace std;typedef struct tagNetworkCfg { char szIP[18]; char szNetmask[18];
Time of Update: 2017-01-19
學過C++的人都知道,C++是強型別語言,因此變數在使用前就要聲明資料類型,不同資料類型分配的記憶體空間大小也是不同,在轉換類型時尤其需要注意這個問題,以防止資料丟失或越界溢出。本文將詳細歸納總結一下C++的類型轉換。C++從C發展而來,也繼承兩種C風格的轉換:隱式轉換和顯式轉換。1.隱式轉換隱式轉換是指由編譯系統自動進行,不需要人工幹預的類型轉換,例如:short a = 2000;int b;b = a;隱式轉換,也包括建構函式和運算子的轉換,例如:class A {};class B
Time of Update: 2017-01-19
DFS(Depth-First-Search)深度優先搜尋演算法是圖的遍曆演算法中非常常見的一類演算法。分享給大家供大家參考。具體方法如下:#include <iostream>#include <algorithm>#include <iterator>using namespace std; #define MAX_VERTEX_NUM 10struct Node{ int adjvex; struct Node *next; int
Time of Update: 2017-01-19
本文執行個體分析了C語言連續子向量的最大和及時間度量,分享給大家供大家參考之用。具體方法如下:#include <stdio.h>#include <time.h>#include <stdlib.h>#define SCALE 3000int maxnum(int a, int b);int main(int argc, char const *argv[]){ FILE *fp; fp = fopen("maximum.in", "r"); // int
Time of Update: 2017-01-19
本文以執行個體形式講述了C語言實現二叉樹的非遞迴遍曆方法。是資料結構與演算法設計中常用的技巧。分享給大家供大家參考。具體方法如下:先序遍曆:void preOrder(Node *p) //非遞迴{ if(!p) return; stack<Node*> s; Node *t; s.push(p); while(!s.empty()) { t=s.top(); printf("%d\n",t->data); s.pop();
Time of Update: 2017-01-19
本文執行個體分析C語言的遞迴思想,分享給大家供大家參考之用。具體方法如下:通俗點來說,遞迴就是自己調用自己。遞迴的痛點一是理解遞迴的執行調用過程,二是設定一個合理的遞迴結束條件。下面來看一段摘自書中的簡單程式:#include <STDIO.H>long fact(int n);long rfact(int n);int main(void){ int num; printf("This program calculates factorials.\n");
Time of Update: 2017-01-19
本文執行個體講述了C語言建立鏈表中經典錯誤的通過指標參數申請動態記憶體,分享給大家供大家參考之用。具體執行個體如下:#include <stdio.h>#include <stdlib.h>// 用malloc要包含這個標頭檔typedef struct node{ int data; struct node* next;// 這個地方注意結構體變數的定義規則} Node;void createLinklist(Node* pHder, int length){
Time of Update: 2017-01-19
本文執行個體講述了C語言實現帶頭結點的鏈表的建立、尋找、插入、刪除操作。是資料結構中鏈表部分的基礎操作。分享給大家供大家參考。具體方法如下:#include <stdio.h>#include <stdlib.h>typedef struct node{ int data; struct node* next;// 這個地方注意結構體變數的定義規則} Node, *PNode;Node* createLinklist(int length){ int i = 0;
Time of Update: 2017-01-19
本文以一個簡單一實例講述了C程式讀取鍵盤碼的方法,分享給大家供大家參考。具體分析如下:一般來說,鍵盤碼在底層開發中經常會用到,有時候我們會忘記它們,就要急急忙忙的去找 鍵-碼 對照表查看,其實程式可以自己列印出 鍵-碼 對應值具體執行個體如下:#include <stdio.h> #include <bios.h> int main(void) { int key, modifiers; while ((key=bioskey(0)) != 0 && key!=0
Time of Update: 2017-01-19
本文執行個體分析了C語言中char* 和 char []的區別。分享給大家供大家參考之用。具體分析如下:一般來說,很多人會覺得這兩個定義效果一樣,其實差別很大。以下是個人的一些看法,有不正確的地方望指正。本質上來說,char *s定義了一個char型的指標,它只知道所指向的記憶體單元,並不知道這個記憶體單元有多大,所以:當char *s = "hello";後,不能使用s[0]='a';語句進行賦值。這是將提示記憶體不能為"written"。當用char