Time of Update: 2018-12-07
關於學習c++和編程的50個觀點:把c++當成一門新的語言學習(和c沒啥關係!真的。);看《thinking in c++》,不要看《c++變成死相》;看《the c++ programming language》和《inside the c++ object
Time of Update: 2018-12-07
4.13
Time of Update: 2018-12-07
程式中的錯誤分為編譯時間的錯誤和運行時的錯誤。編譯時間的錯誤主要是語法錯誤,比如:句尾沒有加分號,括弧不匹配,關鍵字錯誤等,這類錯誤比較容易修改,因為編譯系統會指出錯誤在第幾行,什麼錯誤。而運行時的錯誤則不容易修改,因為其中的錯誤是不可預料的,或者可以預料但無法避免的,比如記憶體空間不夠,或者在調用函數時,出現數組越界等錯誤。如果對於這些錯誤沒有採取有效防範措施,那麼往往會得不到正確的運行結果,程式不正常終止或嚴重的會出現死機現象。我們把程式運行時的錯誤統稱為異常,對異常處理稱為異常處理。C
Time of Update: 2018-12-07
關於堆的描述可以參考:http://www.cs.auckland.ac.nz/~jmor159/PLDS210/heaps.html我的實現沒有用二叉樹,而是用數組。上文提到,由於堆是一種complete樹(complete,和完全樹略有區別),即子節點的上層是完全樹,而子節點從左向右嚴格排列,這種資料結構可以用數組很好類比。從第一層第一個節點為1開始,從左至右從上到下依次儲存。則,對於某個索引為i的節點,其左子節點和右子節點的索引分別為:i * 2, i * 2 +
Time of Update: 2018-12-07
1.命名空間是為瞭解決不同檔案中的同名變數。比如你加了using namespace std;那麼std命名空間中定義的東西就不用加std::了。而iostream.h這個標頭檔是為了相容c,c根本就沒命名空間這個概念,所以不用加using namespace std;了如果用通俗的方法解釋就是,一個學校,有很多個班,在找1號的同學的時候,到底是找哪個班的1號呢?using namespace 高一一班;那麼在找所有高一一班的同學的時候,就不用輸入 高一一班::一號了也不用寫成 using
Time of Update: 2018-12-07
題目:定義棧的資料結構,要求添加一個min函數,能夠得到棧的最小元素。要求函數min、push以及pop的時間複雜度都是O(1)。 C++實現:輸入格式是:1 1021 代表push,後面的數字是要push的內容,2代表pop代碼如下:#include <iostream>#include <fstream>#include <string>using namespace std;template <class T>class
Time of Update: 2018-12-07
前言:由於有人要考C語言電腦二級,編程零基礎,要我入入門。我就把QQ聊天記錄整理一下,再把未講完的東西繼續講下去,希望為以後做類似工作也省省力。對於有多年編程經驗的資深程式員來說,這些著實小菜。而且由於為了應付二級考試,嚴格的說也不能算真正的電腦基礎講解。但其實我想,基礎應該是最難的。硬體,作業系統,編譯器,演算法,哪一個不是電腦裡面最重要也是最難啃的部分?而對於一個沒有編程基礎的人來說,想去快速入門編程,只能以一種很傻瓜的方式去灌輸,只能把很多東西說的很淺顯,很死,甚至是錯誤。如果不是這樣,哪
Time of Update: 2018-12-07
虛函數的定義: 虛函數必須是類的非靜態成員函數(且非建構函式),其存取權限是public(可以定義為private or proteceted, 但是對於多態來說,沒有意義。),在基類的類定義中定義虛函數的一般形式: virtual 函數傳回值類型 虛函數名(形參表) { 函數體 } 虛函數的作用是實現動態聯編,也就是在程式的運行階段動態地選擇合適的成員函數,在定義了虛函數後, 可以在基類的衍生類別中對虛函數重新定義(形式也是:virtual 函數傳回值類型 虛函數名(形參表){
Time of Update: 2018-12-07
一篇講C語言誤區的文章,可能揭示為了語言和體繫結構的走向 原文:http://scienceblogs.com/goodmath/2006/11/the_c_is_efficient_language_fa.php I came across an article yesterday about programming languages, which hit on one of my major peeves, so I can't resist responding. The
Time of Update: 2018-12-07
-C#初學者經常被問的幾道辨析題,實值型別與參考型別,裝箱與拆箱,堆棧,這幾個概念組合之間區別,看完此篇應該可以解惑。 俗話說,用思想編程的是文藝程式猿,用經驗編程的是普通程式猿,用複製粘貼編程的是2B程式猿,開個玩笑^_^。 相信有過C#面試經曆的人,對下面這句話一定不陌生: 實值型別直接儲存其值,參考型別儲存對值的引用,實值型別存在堆棧上,參考型別儲存在託管堆上,實值型別轉為參考型別叫做裝箱,參考型別轉為實值型別叫拆箱。 但僅僅背過這句話是不夠的。 C#程式員不必手工管理記憶體,但
Time of Update: 2018-12-07
最近公司從微軟接了許多小項目,導致了人手不夠,特別是資料庫後台和前台脫節嚴重,部分客戶已經發飆,無奈之下,昨天下午老闆和我們teamLeader
Time of Update: 2018-12-07
我們在項目經常會碰到一些特殊需求 例如下拉框是複選的,查詢條件是根據下拉框中複選項進行拼接看到此圖後大家肯定會說,這很簡單嘛將所有的選項 拼成“'1-3','5-9'” 然後放到 in 的字句後面,一查就出來了。這樣做的確在邏輯上沒有問題,可是大家有沒有想過這個問題,過度的和業務耦合雖然能夠解決現在的需求但是卻犧牲了代碼優雅和可維護性 其實本文的目的是想利用Expression運算式在linq查詢中實現一個優雅的解決方案,同時也會給大家一個用Expression去拼接sql的思路 先上代碼
Time of Update: 2018-12-07
XML檔案由于格式規範,讀寫簡單,所以非常適宜儲存一些程式的配置資訊。下面總結一下在C#中讀寫XML檔案的方法,隨時更新。1、擷取某個節點的值。代碼Code highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-07
大家在實際工作學習C#的時候,可能會問:為什麼我們要為一些已經存在的功能(比如Windows中的一些功能,C++中已經編寫好的一些方法)要重新編寫代碼,C#有沒有方法可以直接都用這些原本已經存在的功能呢?答案是肯定的,大家可以通過C#中的DllImport直接調用這些功能。 DllImport所在的名字空間 using System.Runtime.InteropServices;
Time of Update: 2018-12-07
net 原則上禁止跨線程訪問控制項,因為這樣可能造成錯誤的發生,推薦的解決方案是採用代理,用代理方法來間接操作不是同一線程建立的控制項。 第二種方法是禁止編譯器對跨線程訪問作檢查,可以實現訪問,但是出不出錯不敢保證Control.CheckForIllegalCrossThreadCalls =
Time of Update: 2018-12-07
/********************************************************** 功 能:通過C#程式調用 Windows 記事本程式 編輯* 名為 test.txt 的文字檔。** 在整個程式中 System.Diagnostics.Process.Start(Info) * 為語句。* 只是單獨執行一個外部程式,可用一條如下代碼即可:* System.Diagnostics.Process.Start(* "外部
Time of Update: 2018-12-07
一個共用單例只是一個用類方法容易獲得的特定執行個體,通常儲存在一個靜態變數中。有很多方法可以實現共用單例,但我的建議是使用Grand Central Dispatch(GCD): 1 + (MYSingleton *)sharedSingleton { 2 static dispatch_once_t pred; 3 static MYSingleton *instance = nil; 4 dispatch_once(&pred, ^{instance = [[self
Time of Update: 2018-12-07
忘記在哪看的這篇文章了,覺得還可以
Time of Update: 2018-12-07
本文轉載自[http://www.cppblog.com/mzty/archive/2006/08/08/10959.html],該轉載僅用於技術交流,不得用於商業用途。volatile關鍵字 volatile關鍵字是一種類型修飾符,用它聲明的類型變數表示可以被某些編譯器未知的因素更改,比如:作業系統、硬體或者其它線程等。遇到這個關鍵字聲明的變數,編譯器對訪問該變數的代碼就不再進行最佳化,從而可以提供對特殊地址的穩定訪問。使用該關鍵字的例子如下:int volatile
Time of Update: 2018-12-07
首先我們需要安裝Windows 8以及VS2012,:http://msdn.microsoft.com/zh-CN/windows/apps/br229516/ 然後我們開啟VS2012,選擇Windows Metro Style,然後選擇建立Blank App項目如: 其建立完成的項目結構如下: 我們拖動一個按鈕和ListBox到介面中,設定按鈕事件以及ListBox的DataTemplate,如下Xaml代碼: <Grid Background="{