Time of Update: 2017-02-27
線性表是有限個資料元素的序列。線性表的儲存有順序儲存和鏈式儲存兩種。為使線性表支援相同的API,定義了以下介面,分別用順表和鏈表實現。/** File : ILinerList.cs* Author : Zhenxing Zhou* Date : 2008-12-06* Blog : http://www.xianfen.net/*/using System.Collections.Generic;namespace Xianfen.Net.DataStructure{
Time of Update: 2017-02-27
C#進階(九)C#資料結構,集合C#進階(八)委託C#進階(七)類型強制轉換,拆箱,裝箱C#進階(六)介面,介面繼承C#進階(五)繼承,衍生類別,衍生類別的構造方法C#進階(四)結構,部分類和Object類C#進階(三)建構函式C#進階(二)類C#進階(一)物件導向C#基礎(六)(枚舉,數組,命名空間)C#基礎(五)(C#條件,迴圈和判斷)C#基礎(四)(C#預定義實值型別和參考型別)C#基礎(三)(變數的聲明,變數的範圍以及常量)C#基礎(二)(溫故而知新)C#基礎(一)(溫故而知新)
Time of Update: 2017-02-27
本文討論:單元測試原理設定 WinUnit構建測試裝置實施和自訂本文使用了以下技術:C++和Visual Studio目錄立即開始測試WinUnit 入門裝置:設定和清除運行 WinUnit實現詳細資料深入學習...目前,要想讓機器碼開發人員一點也感覺不到壓力可能是非常困難的- 好像使用 Microsoft® .NET
Time of Update: 2017-02-27
到目前為止,我們為大家講解了有關C#語言中的實值型別和參考型別資料。這一節我們來瞭解一下C#語言類型系統提出的一個核心概念:裝箱(boxing)和拆箱(unboxing)。裝箱和拆箱機制使得在C#類型系統中,任何實值型別、參考型別和object(對象)類型之間進行轉換,我們稱這種轉化為綁定串連。簡單地說,有了裝箱和拆箱的概念,對任何類型的值來說最終我們都可以看作是object類型。4.3.1 裝箱轉換4.3.2 拆箱轉換
Time of Update: 2017-02-27
目錄處理器體繫結構虛擬變數格式說明符可視化呼叫慣例錯誤碼調試安全環境多年來,Visual C++ 一直包含一組用於調試的虛擬變數和格式說明符。虛擬變數是指這樣的內容:可以輸入到偵錯工具監看式視窗中,使其顯示某種不必與任何 C++
Time of Update: 2017-02-27
和裝箱轉換正好相反,拆箱轉換是指將一個物件類型顯式地轉換成一個實值型別,或是將一個介面類型顯式地轉換成一個執行該介面的實值型別。拆箱的過程分為兩步:首先,檢查這個對象執行個體,看它是否為給定的實值型別的裝箱值。然後,把這個執行個體的值拷貝給實值型別的變數。我們舉個例子來看看一個對象拆箱的過程。int i=10;object obj=i;int j=(int)obj;這個過程用圖來表示就是: 可以看出拆箱過程正好是裝箱過程的逆過程。必須注意,裝箱轉換和拆箱轉換必須遵循類型相容原則。
Time of Update: 2017-02-27
顧名思義,整數類型的變數的值為整數。數學上的整數可以從負無窮大到正無窮大,但是由於電腦的儲存單元是有限的,所以電腦語言提供了整數類型的值總是在一定範圍之內。C#中有九種整數類型:短位元組型(sbyte)、位元組型(byte)、短整型(short)、無符號短整型(ushort)、整型(int)、無符號整型(uint)、長整型(long)、無符號長整型(ulong)。劃分的依據是根據該類型的變數在記憶體中所佔的位元。位元的概念是按照2的指數冪來定義的,比如說8位整數,則它可以表示2的8次方個數值,即
Time of Update: 2017-02-27
本文為 Part 3。今天我要講 decltype,它讓完美轉寄函數能夠返回任意類型的東西。對編寫高度泛型的人來說這是很有趣的的特性。傳回型別問題C++98/03 有一個有意思的盲點:給定一個像 x * y 的運算式, x 和 y 是任意類型,你卻沒法知道 x * y 的類型。假如 x 是 Watts 類型的, y 是 Seconds 類型的,那 x * y 的類型可能會是 Joules 類型的。 給定聲明 print(const T& t),調用 print( x * y )
Time of Update: 2017-02-27
本文為 Part 2 的第三頁轉寄問題在程式員不用寫高度泛化的代碼的時候,C++98/03 的 lvalue,rvalue,引用,還有模板看起來是很完美的。假設你要寫一個完全泛化的函數 outer(),這個函數的目的是將任意數目個任意類型的參數傳遞(也就是“轉寄”)給函數 inner()。已有很多不錯的解決方案,比如 factory 函數 make_shared<T>(args) 是把 args 傳給 T 的建構函式,然後返回 shared_ptr<T&
Time of Update: 2017-02-27
本文為 Part 2 第二頁。move 語意:從 lvalue 移動現在,如果你喜歡用拷貝賦值函數來實現你的拷貝建構函式該怎樣做呢,那你也可能試圖用 move 拷貝賦值函數來實現 move 建構函式。這樣作是可以的,但是你得小心。下面就是一個錯誤的實現:C:\Temp>type unified_wrong.cpp#include <stddef.h>#include <iostream>#include <ostream>using namespace
Time of Update: 2017-02-27
本文為 Part 2 的第一頁今天我要講的是 rvalue references (右值引用),它能實現兩件不同的事情: move 語意和完美轉寄。剛開始會覺得它們難以理解,因為需要區分 lvalues 和 rvalues ,而只有極少數 C++98/03 程式員對此非常熟悉。這篇文章會很長,因為我打算極其詳盡地解釋 rvalue references 的運作機制。不用害怕,使用 ravlue references 是很容易的,比聽起來要容易得多。要在你的代碼中實現 move
Time of Update: 2017-02-27
簡介這一系列文章介紹Microsoft Visual Studio 2010 中支援的C++ 0x特性,目前有三部分。Part 1 :介紹了Lambdas, 賦予新意義的auto,以及 static_assert;Part 2( 一 , 二 , 三 ):介紹了右值引用(Rvalue References);Part 3:介紹了運算式類型(decltype)本文為 Part 1。Microsoft Visual Studio 2010 九月Community Technical Preview (
Time of Update: 2017-02-27
在上一篇文章《COM組件開發實踐(五)---From C++ to COM :Part 2 》中,我們進展到使用COM庫載入C++對象了,這一篇中我們將真正將C++對象變成 COM對象,而在下一篇中我們將為它添加多介面支援。C++對象變成COM對象要將一個C++對象變成一個真正的COM對象,只需要如下操作:1)實現介面的引用計數。因此每個COM對象都需要有兩個函數用於管理引用計數:ULONG AddRef(); ULONG
Time of Update: 2017-02-27
無參、無傳回值的函數:using System;class MyClass{ static void Show() { Console.WriteLine("function"); } static void Main() { Show(); //function Console.ReadKey(); }}參數:using System;class MyClass{ static void Show(string str)
Time of Update: 2017-02-27
為什麼我想談談架構,和代碼的複製粘貼這兩個話題呢,主要是前幾天看到一篇文章提到這兩個話題,在這裡想談談我的一些看法。很多新人,都很談架構,好象貼了架構這個標籤就顯示高檔似的,把設計模式當作聖經,實在可笑。做架構,不是捧著書,然後閉門苦思就能想出來的。架構是做出來的,不是設計出來的架構,說穿了就是解耦,把變化的東西抽離出來,這個是它的本質。一般來說,越接近底層的東西越是穩定,越接近業務層的東西越容易變化。如果想在業務層上作封裝,也就是說想作架構設計,必須充分瞭解業務,沒有足夠的編碼經驗是不可能做好
Time of Update: 2017-02-27
鄰接表無向圖的介紹鄰接表無向圖是指通過鄰接表表示的無向圖。上面的圖G1包含了"A,B,C,D,E,F,G"共7個頂點,而且包含了"(A,C),(A,D),(A,F),(B,C),(C,D),(E,G),(F,G)"共7條邊。上圖右邊的矩陣是G1在記憶體中的鄰接表示意圖。每一個頂點都包含一條鏈表,該鏈表記錄了"該頂點的鄰接點的序號"。例如,第2個頂點(頂點C)包含的鏈表所包含的節點的資料分別是"0,1,3";而這&qu
Time of Update: 2017-02-27
鄰接矩陣有向圖的介紹鄰接矩陣有向圖是指通過鄰接矩陣表示的有向圖。上面的圖G2包含了"A,B,C,D,E,F,G"共7個頂點,而且包含了"<A,B>,<B,C>,<B,E>,<B,F>,<C,E>,<D,C>,<E,B>,<E,D>,<F,G>"共9條邊。
Time of Update: 2017-02-27
拓撲排序介紹拓撲排序(Topological Order)是指,將一個有向非循環圖(Directed Acyclic
Time of Update: 2017-02-27
普裡姆演算法介紹普裡姆(Prim)演算法,是用來求加權連通圖的最小產生樹的演算法。基本思想對於圖G而言,V是所有頂點的集合;現在,設定兩個新的集合U和T,其中U用於存放G的最小產生樹中的頂點,T存放G的最小產生樹中的邊。從所有uU,v(V-U) (V-U表示出去U的所有頂點)的邊中選取權值最小的邊(u, v),將頂點v加入集合U中,將邊(u,
Time of Update: 2017-02-27
迪傑斯特拉演算法介紹迪傑斯特拉(Dijkstra)演算法是典型最短路徑演算法,用於計算一個節點到其他節點的最短路徑。