Time of Update: 2015-04-11
標籤:C#不允許在foreach迴圈中改變數組或集合中元素的值(註:成員的值不受影響),如以下代碼將無法通過編譯。foreach (int x in myArray){ x++; //錯誤碼,因為改變了元素的值 Console.WriteLine(x);}如果要讓自訂的資料類型支援foreach迴圈,則該類型必須實現IEnumerable<T>介面,且存在對應此列表的IEnumerator<T>實現。 實際上,在.Net的底層(IL語言層面)而言,foreach
Time of Update: 2015-04-11
標籤:如何專業的定義一個class?這裡記錄一下自己的checklist- 關於建構函式的注意點a. 建構函式聲明為explicit,避免隱式轉換b. 考慮禁用複製建構函式、賦值函數c++中,預設對於類會產生以下成員函數(如果你沒有定義的話,這通常是不可控的)class Empty() { public: Empty(); ~Emtpy();
Time of Update: 2015-04-11
標籤:數組實現雙端隊列的時候注意區別判斷上溢和下溢。用兩個棧實現隊列,就相當於把兩個棧底靠在一起(背靠背),一個棧用來出隊列,一個棧用來進隊列。這個隊列的操作時間大部分時候是常數時間,除了出列的棧為空白,需要把進列的棧全部轉移過去,再出列。Back()操作和Pop()操作類似,也是這樣。而兩個隊列實現棧,隊列輪流充當入棧和出棧的角色,而什麼時候會改變角色呢,就是Pop()操作。Pop()操作先把一個隊列中的所有元素全部出列並加入另外一個空隊列中去,然後再出列(第二個隊列)。實現代碼為C#incl
Time of Update: 2015-04-11
標籤:回溯演算法實際上是構造一棵推理樹,並由樹的葉子節點反向輸出曆史步驟;其中,樹的構建過程較為複雜;一種簡化的方法是使用鏈表串連和構造各個節點的關係;以4皇后問題為例,採用C++ vector容器——避免使用指標(當然換成了整數來代替指標表達對象的位置),解決了該問題。整體演算法思路清晰,便於理解。見代碼;與書中不同,此代碼實際輸出的是所有4皇后問題的不同走法//title:4皇后問題的回溯演算法求解//Demo:
Time of Update: 2015-04-11
標籤:本人原來學習Java的,由於工作原因得接觸C++。在C++的接觸過程當中,犯了很多的錯誤,但是仍然糾結於文法細節上,讓我很難適應。剛開始一致覺得可能是做的少了,一個項目而言能碰到設計文法細節的方面其實相當有限,如果僅僅是完成工作保險就可以了,但是對於C++的理解,也就僅限於一個碼農的水平了。
Time of Update: 2015-04-11
標籤:標頭檔:#include <stdio.h>fopen()是一個常用的函數,用來以指定的方式開啟檔案,其原型為: FILE * fopen(const char * path, const char *
Time of Update: 2015-04-11
標籤:GetUpperBound可以擷取數組的最高下標。GetLowerBound可以擷取數組的最低下標。這樣就可以實現對數組的遍曆//定義二維數組string[,] myStrArr2=new string[,]{{"油","鹽"},{"圍城","晨露"},{"毛毛熊","Snoopy"}};for(int i=myStrArr2.GetLowerBound(0);i<=myStrArr2.GetUpperBound(0);i++){for(int
Time of Update: 2015-04-11
標籤:頭一次記錄技術相關知識,相信將來一定能看到自己的進步!最近忙著找工作,因為要應對各種筆試。所以做了幾個練習,不練不知道一練嚇一跳。發現自己對C++的基礎知識幾乎忘光了。突然感慨自己複製粘貼好多年的結果。。。 1.關於構造和析構順序:include "stdafx.h" #include <iostream>using namespace std;class One{public:
Time of Update: 2015-04-11
標籤: 構造以下C程式並在合適位置插入breakpoints在Visual Studio 2015 CTP6對其反組譯碼。下面來分析z = add(1, 2);009C170E 6A 02 push 2 ????int z; ????z = add(1, 2);009C1710 6A 01 push 1 009C1712 E8 8D FA FF FF call 009C11A4
Time of Update: 2015-04-11
標籤: 1、關於輸出指向字元的指標的值。 現在定義,char c=‘a‘,char*
Time of Update: 2015-04-11
標籤:注意事項:特別注意任何時候同時使用兩個迭代器產生的將會是一個前閉後開的區間(具體見插入和刪除的例子)特別注意begin()指向的是vec中的第0個元素,而end是指向最後一個元素的後面一個位置(不是最後一個元素)特別注意迭代器的時效性,如果一個迭代器所指向的內容已經被刪除,而後又使用該迭代器的話,會造成意想不到的後果 1 //容器的基本操作 2 //特別注意任何時候同時使用兩個迭代器產生的將會是一個前閉後開的區間(具體見插入和刪除的例子) 3
Time of Update: 2015-04-11
標籤:學習筆記 visual c++
Time of Update: 2015-04-11
標籤:c語言 通用 鏈表 資料結構 核心 在作業系統編程中, 往往是使用C語言, 但C使用起來極為痛苦, 不像C++有方便的STL模板庫使用。linux核心中,有一套非常神奇的通用鏈表結構,能夠方便的使用,管理各種類型的資料,我們今天就來研究一下,核心中的C資料結構。本文參考:【深入分析 Linux
Time of Update: 2015-04-11
標籤:如果項目引用了很多dll,發布的時候放同一目錄會很亂,這時候可以用privatePath後面指定搜尋的dll檔案夾,多個用;分隔另外,發現在設定檔夾中 configSource 也是可以指定目錄的 <runtime> <gcConcurrent enabled="true" /> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
Time of Update: 2015-04-11
標籤:前言: 寫了這麼久程式,今天才知道的一個基礎知識點,就是程式入口 static void Main(string[] args) 裡的args參數是什麼意思 ?慚愧...需求: 點擊一個button,啟動一個exe程式,並對其傳遞參數。 代碼如下: private void btnStart_Click(object sender, RoutedEventArgs e) { var rootPath =
Time of Update: 2015-04-11
標籤:Console.Write 表示向控制台直接寫入字串,不進行換行,可繼續接著前面的字元寫入。Console.WriteLine 表示向控制台寫入字串後換行。Console.Read 表示從控制台讀取字串,不換行。Console.ReadLine 表示從控制台讀取字串後進行換行。Console.ReadKey 擷取使用者按下的下一個字元或功能鍵,按下的鍵顯示在控制台視窗中。Console.Beep 通過控制台擴音器播放提示音。Console.Clear
Time of Update: 2015-04-11
標籤:1.減少效能開銷的方式使用字串str1+9在運行時會完成一次裝箱行為,9.ToString()並沒有發生裝箱行為StringBuilder來彌補String裝箱的不行,但因為StringBuilder沒有定義長度,預設分配的長度為16,當長度大於16時,又會新分配。適合記憶體不需要頻繁分配的場合。StringBuilder sb = new StringBuilder(a);sb.Append(b);微軟還提供另一個方法來簡化這種操作,string.Format。string
Time of Update: 2015-04-11
標籤:11.3 轉換到目前為止,在需要把一種類型轉換為另一種類型時,使用的都是類型轉換。而這並不是唯一的方式。在計算過程中,int可以採用相同的方式隱式轉換為long或double,還可以定義所建立的類(隱式或顯式)轉換為其他類的方式。為此,可以重載轉換運算子,其方式與本章前面重載其他運算子的方式相同。11.3.1
Time of Update: 2015-04-11
標籤:1.C可變長參數printf這個使用頻繁的C語言函數的參數列表包含一個const char*的描述串,還有一個可變長參數(...) ,如下為printf的函式宣告。int printf(const char * __restrict, ...)在stdarg.h這個標頭檔中包含著對可變長參數進行操作的一些宏(x86平台為例): #define va_start(ap,v)( ap = (va_list)&v +
Time of Update: 2015-04-11
標籤:一1、Mac系統簡介—準系統1.1commad+空格 切換IME1.2系統內建截屏功能(command+shift+3、command+shift+4)1.3所有設定都可以通過“喜好設定”來調整(快速鍵是command+,)1.4ctrl+左右鍵切換案頭,ctrl+上鍵添加案頭1.5 command+shift+刪除鍵 清空廢紙簍1.6應用程式切換command+tab1.7退出當前應用