Time of Update: 2017-02-27
在C和彙編混合編程的時候,存在C語言和組合語言的變數以及函數的介面問題。在C程式中定義的變數,編譯為.asm檔案後,都被放進了.bss區,而且變數名的前面都帶了一個底線。在C程式中定義的函數,編譯後在函數名前也帶了一個底線。例如:extern int num就會變成 .bss _num, 1extern float nums[5]就會變成.bss _nums, 5extern void func ( )就會變成
Time of Update: 2017-02-27
題目: 給定一個大小為N*M的迷宮. 迷宮由通道和牆壁組成, 每一步可以向鄰接的上下左右四格的通道移動.請求出從起點到終點所需的最小步數. 請注意, 本題假定從起點一定可以移動到終點.使用寬度優先搜尋演算法(DFS), 依次遍曆迷宮的四個方向, 當有可以走且未走過的方向時, 移動並且步數加一.時間複雜度取決於迷宮的狀態數, O(4*M*N)=O(M*N).代碼:/* * main.cpp * * Created on: 2014.7.17
Time of Update: 2017-02-27
題目: 有一個大小為N*M的園子, 雨後起了積水. 八連通的積水被認為是串連在一起的. 請求出園子裡總共有多少水窪.使用深度優先搜尋(DFS), 在某一處水窪, 從8個方向尋找, 直到找到所有連通的積水. 再次指定下一個水窪, 直到沒有水窪為止.則所有的深度優先搜尋的次數, 就是水窪數. 時間複雜度O(8*M*N)=O(M*N).代碼:/* * main.cpp * * Created on: 2014.7.12
Time of Update: 2017-02-27
題目: 給定整數a1, a2, ..., an, 判斷是否可以從中選出若干數, 使它們的和恰好為k.解法很多, 最簡單的解法是使用深度優先搜尋, 時間複雜度O(2^n), 不是最優解法.代碼:/* * main.cpp * * Created on: 2014.7.13 *本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/sjjg/ * Author: Spike */
Time of Update: 2017-02-27
工作中遇到一個需求,需要使用Outlook自動發送郵件。別誤會,我沒打算做駭客行為,就是想用Outlook發送使用者反饋給我們。就是,使用者在文字框裡面輸入他們的意見,按發送按鈕,意見就自動以email的形勢發送給開發人員,還不能讓使用者知道我們盜用了他們的郵箱(雖然不是駭客,行為也夠黑的...)看中Outlook的原因有二1,由於公司的政策,Outlook人人必用(相信很多IT,非IT公司都是這樣)2,即使離線狀態也不會報錯,等聯機的時候一樣會把郵件發出。勤勞的Outlook功能啊。.net
Time of Update: 2017-02-27
5.url傳遞中文的解決方案1.設定web.config檔案。<system.web>......<globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312"
Time of Update: 2017-02-27
1.Convert.ToInt32與Int32.Parse的恩恩怨怨2.Split的3種用法3.@"abc"和"abc"區別在那裡4.保留2位有效小數及四捨五入5.url傳遞中文的解決方案6.把123456789轉換為12-345-6789的3種方法7.交換兩個指定位置字元的4種方法8.“%10”的妙用9.輸出21個AAAAAAAAAAAAAAAAAAAAA的巧妙做法1.Convert.ToInt32與Int32.Parse的恩恩怨
Time of Update: 2017-02-27
做分片語件時,有網友提出採用Hashtable 資料結構尋找字串效率較低,建議改為Dictionary,其理由是採用Hashtable 時Key值是object 會觸發裝箱和拆箱動作,一直對這種說法表示懷疑,因為我理解只有實值型別和參考型別通過object 互轉時才會發生裝箱和查詢,參考型別之間強制轉換不應發生裝箱和拆箱,而Dictionary 泛型實際上底層還是調用的Hashtable,所以效率怎麼會比Hashtable
Time of Update: 2017-02-27
我們將談到C#綁定變數和匿名塊擷取擷取序列當前值,首先需要在Oracle中進行一系列的操作,接下來是C#綁定變數的具體操作。1.在Oracle中建立表、序列、觸發器:SQL> create table TESTTAB( ID NUMBER, NAME VARCHAR2(10));表被建立SQL> create sequence TESTTABSEQ minvalue 1 maxvalue 999999999999999999999999999 start wi
Time of Update: 2017-02-27
以前在玩Windows 98的時候,幾台電腦連起來,需要測試網路連接是否正常,經常用的一個命令就是Ping.exe.感覺相當實用.現在 .net為我們提供了強大的功能來調用外部工具,並通過重新導向輸入、輸出擷取執行結果,下面就用一個例子來說明調用Ping.exe命令實現網路的檢測,希望對.net初學者有所協助.首先,我們用使用Process類,來建立獨立的進程,匯入System.Diagnostics,using
Time of Update: 2017-02-27
1,SaveFileDialog控制項的屬性Filter 要在對話方塊中顯示的檔案篩選器,例如,"文字檔(*.txt)|*.txt|所有檔案(*.*)|*.*" FilterIndex 在對話方塊中選擇的檔案篩選器的索引,如果選第一項就設為1 RestoreDirectory 控制對話方塊在關閉之前是否恢複目前的目錄 AddExtension 是否自動添加預設副檔名 CheckFileExists CheckPathExists在對話方塊返回之前,檢查指定路徑是否存在
Time of Update: 2017-02-27
提及.NET的指標操作,很多人並不是很瞭解,甚至還不知道有這麼個東東由於C#的指標操作屬於unsafe操作,所以很多人對unsafe使用起來都很謹慎其實所謂不安全的程式碼,其實是不受控於CLR控制下的託管執行,相當於CLR領導下的部分地區自治,當然CLR也不會去關心不安全的程式碼的記憶體配置和回收費話少說,先體驗一下適當的指標操作帶來的效能提升。平時我們通過GDI+操作稍大點圖片象素時,都會有一種瀕臨崩潰的感覺,我們轉下用指標操作1 Bitmap map = new Bitmap(path)
Time of Update: 2017-02-27
只能輸入數字:"^[0-9]*$"。只能輸入n位的數字:"^\d{n}$"。只能輸入至少n位的數字:"^\d{n,}$"。只能輸入m~n位的數字:。"^\d{m,n}$"只能輸入零和非零開頭的數字:"^(0|[1-9][0-9]*)$"。只能輸入有兩位小數的正實數:"^[0-9]+(.[0-9]{2})?$"。只能輸入有1~3位小數的正實數:"^[0-9]+(.[0-
Time of Update: 2017-02-27
本文繼續《C#上機題的OO - 策略模式》中的題目,但這是使用的是雙向迴圈鏈表。當第一次看到這題我首先想到的是迴圈鏈表,但題目要求物件導向的方法,汗~首先是雙向鏈表的節點類1 /// <summary>2 /// 雙向鏈表節點3 /// </summary>4 /// <typeparam name="T"></typeparam>5 public class DoubleLinkNode<T>6 {7
Time of Update: 2017-02-27
建立一個控制台應用程式,添加對程式集System.Management的引用,代碼如下using System;using System.Collections.Generic;using System.Text;using System.Management;namespace ConsoleApplication1 { class Program { static void Main(string[] args) { PrintMotherBoardInfo();
Time of Update: 2017-02-27
C#開發ActiveX控制項在開發Web頁面中是十分有用的,下面提供了C#開發ActiveX控制項操作指南,供大家學習參考。0. 前言ActiveX控制項以前也叫做OLE控制項或OCX控制項,它是一些軟體組件或對象,可以將其插入到WEB網頁或其它應用程式中。使用ActiveX外掛程式,可以輕鬆方便的在 Web頁中插入多媒體效果、互動式對象以及複雜程式等等。通常使用C++或VB開發ActiveX控制項,本文探討一下在Visual Studio
Time of Update: 2017-02-27
對於char,這個字元類型。我們一般都認為就是一個位元組。今天在仔細比較發現,C#的char和C++的char是有區別的。1.首先來看C#中char佔多大空間using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1{ class Program { static void Main(string[]
Time of Update: 2017-02-27
在C++中,我們可以通過#define這個指令定義所謂的符號常量,這種常量會被直接編譯到二進位代碼中去。在這種情況下,它與用const定義的常值變數的效果是基本類似。的,例如:但#define還有一個作用,就是改變編譯器行為,例如根據它決定是否要編譯某句代碼在很多C++源檔案中都會有下面這樣的代碼#if !defined(AFX_MAINFRM_H__0EFEA8A4_112C_4528_B7A8_761F1B02C20C__INCLUDED_) //如果沒有定義#define AFX_MAIN
Time of Update: 2017-02-27
什麼是處理指示?處理指示(Processing Instructions,PI)是用“<? ?>”包圍的一種標籤,用以描述特定應用程式資訊。Xml文檔可以包含多個針對不同應用程式的處理指示。處理指示由兩部分組成,target和
Time of Update: 2017-02-27
對於new()約束,大家可能有一個誤解,以為使用了new約束之後,在建立對象時與非泛型的版本是一致的:public class Tester<T> where T:new(){public Tester(){t = new T();//等同於非泛型版本的new? 例如 object o = new object();?} private T