Time of Update: 2018-07-30
1.深度優先遍曆的遞迴定義 假設給定圖G的初態是所有頂點均未曾訪問過。在G中任選一頂點v為初始出發點(源點),則深度優先遍曆可定義如下:首先訪問出發點v,並將其標記為已訪問過;然後依次從v出發搜尋v的每個鄰接點w。若w未曾訪問過,則以w為新的出發點繼續進行深度優先遍曆,直至圖中所有和源點v有路徑相通的頂點(亦稱為從源點可達的頂點)均已被訪問為止。若此時圖中仍有未訪問的頂點,則另選一個尚未訪問的頂點作為新的源點重複上述過程,直至圖中所有頂點均已被訪問為止。
Time of Update: 2018-07-30
嘗試著在C#下調用以前Delphi寫的一些DLL,基本實現動態調用,傳入回呼函數,及調用帶結構數組指標作為參數的函數. 雖然DllImport可以方便的靜態調用DLL的函數,但在.net2.0中新增加了一個Marshal.GetDelegateForFunctionPointer 方法,可以將非託管函數指標轉換為委託。
Time of Update: 2018-07-30
功 能: 將s所指向的某一塊記憶體中的每個位元組的內容全部設定為ch指定的ASCII值, 塊的大小由第三個參數指定,這個函數通常為新申請的記憶體做初始化工作 用 法: void *memset(void *s, char ch, unsigned n); 程式例: #include <string.h> #include <stdio.h> #include <memory.h>
Time of Update: 2018-07-30
如何回答C++面試中關於智能指標的問題。 1、 什麼是智能指標。 2、為什麼要用智能指標以及智能指標的原理是什麼。 3、 分析下常見的智能指標有哪些。 4、實現一個智能指標唄。(沒具體說寫哪個,建議預設寫:unique_ptr(scoped_ptr)) 1、答:智能指標(smart
Time of Update: 2018-07-30
搞死人,就這兩節,做的太慢了。 輸出習題 4.34中建立的 vector 對象和數組的內容。輸出數組後,記得釋放字元數組。 以為是個簡單的題目,結果都做錯了 錯在:cout<<parr[st]<<endl; 這一句,我以為需要解引用,就用cout<<*parr[st]<<endl 結果解出來來的是第一位,如果是想全部的字串,則直接輸出該指標。 int main(int argc, _TCHAR*
Time of Update: 2018-07-30
函數和變數(全域變數)都有聲明和定義, 對於函數而言: 同一檔案內,如果函數fun_1調用fun_2時,如果fun_2在fun_1之後定義,則需在fun_1之前對fun_2進行聲明,如下: void fun_2();// 聲明void fun_1() { ...fun_2();... } // 調用fun_2void fun_2() { ... } // 定義 不同
Time of Update: 2018-07-30
一Hashtable 和 Dictionary <K, V> 類型
Time of Update: 2018-07-30
以前做Winform程式,居然專門做一個介面來配置連接字串。今天無意中發現:竟然可以直接調用VS.net2005中的配置介面來處理。 使用方法也及其簡便: 一、添加引用 C:/Program Files/Microsoft Visual Studio 8/Common7/IDE/Microsoft.Data.ConnectionUI.Dialog.dll 二、引入名稱空間 using Microsoft.Data.ConnectionUI;
Time of Update: 2018-07-30
多態的原理 例1:定義一個Shape類,其中有一個虛函數和資料成員,然後定義一個Circle類,只有建構函式和資料成員,並且公有的繼承Shape類,所以Circle類使用的也是Shape類的虛函數來計算面積,此時的虛函數如何來實現呢。
Time of Update: 2018-07-30
前言 作為一名電腦系的學生,接觸編程也有兩年時間了,一個比較深的感受:光會碼代碼是遠遠不夠的,調試代碼的能力十分重要。 經常有同學說,這個我知道思路,代碼也打出來了,為什麼跑出來的結果總是不如我所願。打代碼1小時,調試1天這種事常常發生。 當然,這並不是我們打代碼的能力不夠,再好的程式員也會因為各種原因打出有bug的程式,debug是家常便飯。
Time of Update: 2018-07-30
今天接觸到了C++的引用使用方法,C++中的資料成員(也可以成長為對象的屬性,當然成員函數就叫做對屬性施加的行為)分為public,protected和private三種咯。private資料成員是不能被類外的函數進行操作的(友元除外),今把我做學到和接觸的類的私人資料成員提取的類外的方法進行總結,由於水平有限,熱烈歡迎各位朋友補充: #include <iostream>using namespace std;class Test{public: void
Time of Update: 2018-07-30
本章主要講解一下Linux下C語言編程常見的檔案名稱、標頭檔的組成、預先處理命令、預定義宏等的進階使用。 檔案尾碼及檔案類型 標頭檔組成(重點內容) 標頭檔中的內容主要包含以下部分: 1)標頭檔保護(防止出現重定義的報錯) #ifndef .... #define .... #endif .... 2)包含其他標頭檔 #include <stdio.h> #include <stdlib.h> 3)進行宏定義 #define
Time of Update: 2018-07-30
C++安全函數之strcpy_s 1. 必須包含的標頭檔:<string.h> 2. 函式宣告: errno_t strcat_s( char *strDestination, size_t numberOfElements, const char *strSource ); 3. 參數介紹
Time of Update: 2018-07-30
每個衍生類別對象由衍生類別中定義的(非static)成員加上一個或多個基類子物件構成,因此,當構造、複製、賦值和撤銷衍生類別型對象時,也會構造、複製、賦值和撤銷這些基類子物件。 建構函式和複製控製成員不能繼承,每個類定義自己的建構函式和複製控製成員。像任何類一樣,如果類不定義自己的預設建構函式和複製控製成員,就將使用合成版本。 1:建構函式和繼承
Time of Update: 2018-07-30
string No = ""; //產生編號 DateTime now = DateTime.Now; string Year = now.Year.ToString(); string Month = now.Month<10?"0"+now.Month:now.Month.ToString(); string Day = now.Day < 10 ? &
Time of Update: 2018-07-30
一、回呼函數 在看LWIP時,見到用回呼函數,再看某老外公司OPC原始碼時,見到用回呼函數。看我國內某些代碼(我公司軟體等)時沒用到。於是,我對回呼函數產生了很大的好奇。以前,我寫VC程式時用到過回呼函數,但是沒有用C語言來使用。最近,看到國外大量的經典代碼中廣泛使用了回呼函數(LWIP、某兩個公司的OPC程式等),都是C語言來實現的,而不是VC windows程式中別人實現自己使用的那種。 為了弄明白這種函數的奧妙,首先提出三個問題:
Time of Update: 2018-07-30
using System;using System.Threading;public class ThreadTest{ static double number1 = -1; static double number2 = -1; public static void Main() { int maxThreadNum, portThreadNum; int minThreadNum;
Time of Update: 2018-07-30
使用WMI擷取系統資訊過程 我們以擷取本機系統為例,擷取系統資訊的過程如下: 1)初始化COM庫 由於用C++編寫WMI應用是基於COM技術的,所以必須初始化COM庫,這時調用函數CoInitializeEx用於初始化COM庫。
Time of Update: 2018-07-30
有時候寫代碼的時候,總覺得程式寫的沒問題,但是總是出錯,找了半天的bug,原來是memset()的用法沒用對。。。說到底還是太渣了,為了以防以後再翻這種錯,特地去查了一下資料和度娘,有種恍然大悟的感覺。。。 void *memset( void *buffer, int ch, size_t count ); memset()的標頭檔是#include<string.h> 我們經常使用memset()來初始化數組,這比用for迴圈初始化效率高很多
Time of Update: 2018-07-30
求累加和最大的最長子數組 問題:給定一個數組,返回子數組的最大累加和 採用暴力求解 時間複雜度0(N*N*N) #include <iostream>using namespace std;/*子數組求最大累加和:返回最大值*/int arrayLocSum(int a[], int length){ if (!a || length <= 0) return -1; int sum = a[0]; int max = sum;