Time of Update: 2018-12-03
C/C++支援比較低階的位元運算,在是眾人皆知的了。每本C/C++的教科書都會說到這部分的內容,不過都很簡略,我想會有很多人不知道位元運算用在什麼地方。這個文章就簡略說說位元運算的用處,更進一步的用法要大家自己去體會。而主要說的是操作標誌值方面。 /****************************************/#define BTI_MSK(bit) (1 << (bit))#define BIT_SET(x,bit) ((x) |= BTI_MSK (
Time of Update: 2018-12-03
偶然在書上看到句話,“為C++程式員所津津樂道的一件事,就是sort()全面打敗c語言的quicksort”,於是決定親自測試下,正好將其他的排序也一併測試了,當做當初沒寫的補償吧。 測試檔案的一些說明: 1、 測試中如果用數組,當MAX達到1000000時,會stack over,所以這裡全部用了vector。 2、隨機數用一個全域vector儲存,單獨排序時直接vector<int>
Time of Update: 2018-12-03
自C#誕生之日起,關於C#與Java之間的論戰便此起彼伏,至今不輟。拋卻Microsoft與Sun之間的恩怨與口角,客觀地從技術上講,C#與Java都是對傳統物件導向程式設計在組件化軟體時代的革新之果,可謂殊途同歸。雖說兩個語言有著"90%的重疊",但那另外"10%的較量"也往往能夠左右一個天平的方向。本文將攜90%之共,論10%之異,對兩個語言做純技術品評。文章不涉及兩個語言的公司,市場等檯面後的事情--雖然這往往也會影響人們對程式設計語言的選擇。也不預備得出誰是誰的Killer,讀者應該選擇
Time of Update: 2018-12-03
#include <iostream>#include <fstream>#include <sstream>#include <string>#include <set>#include <map>#include <vector>using namespace::std;class TextQuery{public:typedef
Time of Update: 2018-12-03
1.C語言不是物件導向語言。因為這一點,任何學習C語言的人必須學會用函數思考問題。當你真正的去學習一門物件導向語言時,就會有C語言的函數學習基礎去對比。這會使學習物件導向編程更容易理解和更有樂趣。2.用C編程就像進行智力體操。你要顧及到每一件事情,而這在很多其他語言中他會為你處理。你要管理指標,記憶體配置,和記憶體回收。你要明白如何處理串,還有動態資料。在其他語言中,所有這些對你來說是隱藏的。你不知道他們如何運行,更不用說改變他們的運行方式了。你得到了使用的便利,失卻了對程式的控制和速度。很多情
Time of Update: 2018-12-03
C++提供了typeid和dynamic_cast來支援RTTI機制,如下:#include <iostream>using namespace std;class base {public: virtual void funA() { cout<<"base"<<endl; }};class derive: public base{public: virtual void
Time of Update: 2018-12-03
//網上關於這方面的挺多,由於自己以前上課沒好好學資料結構,現在重新認識資料結構,//以下是自己寫的基於C++的單鏈表的建立及其一些操作,與實現,沒用模板,所以適合//有一點C++基礎的人,但可移植不夠.有什麼bug的話,歡迎指出。或有什麼問題也可以聯絡我// made by virgil (2009.2.8)//
Time of Update: 2018-12-03
聲明和使用類模板: 如果在類模板外定義成員函數,應寫成類模板形式: template<class 虛擬型別參數>函數類型 類模板名<虛擬型別參數>∷成員函數名(函數形參表列) {…}測試的模板類,如下://Compare.h#ifndef _COMPARE_H#define _COMPARE_Htemplate <typename T>class Compare{public: ~Compare(void); Compare(T,T); T max(); T
Time of Update: 2018-12-03
一、reinterpret_cast: 是特意用於底層的強制轉型,導致實現依賴(implementation-dependent)(不可移植)的結果,例如,將一個指標轉型為一個整數。 string a; double *b=static_cast<double*>(&a); cout<<b<<" "<<&a<<endl; //結果只是指標到指標(地址)的拷貝,b和&a地址一樣
Time of Update: 2018-12-03
變數的定義分配了變數的儲存空間,並有可能賦一個初始值給變數,在程式中變數只能定義一次; (如int i; 或 int i=1;)變數的聲明主要聲明了變數名和變數類型,沒有分配空間定義也是一種聲明。當在定義一個變數時,我們指出了其名稱與類型。我們不能沒定義一個變數就使用extern來聲明它,在程式中可以聲明多次。 (如extern int i; extern int i;). 只要聲明存在初始值,就被認為定義,不管是否有extern(例:extern int i=2是定義)
Time of Update: 2018-12-03
在C#中定義常量的方式有兩種,一種叫做靜態常量(Compile-time constant),另一種叫做動態常量(Runtime constant)。前者用“const”來定義,後者用“readonly”來定義。 對於靜態常量(Compile-time constant),它的書寫方式如下:public const int MAX_VALUE = 10;為什麼稱它為靜態常量呢,因為如上聲明可以按照如下理解(注意:如下書寫是錯誤的,會出編譯錯誤,這裡只是為了方便說明)。public static
Time of Update: 2018-12-03
前段時間在庫裡寫個error log. 建立檔案,直接寫個檔案名稱字,開啟。其實也預設到exe的當前路徑。 只是有些不放心這個檔案是否能真的開啟成功。畢竟沒有給絕對路徑。。。索性研究了下獲得當前路徑的用法。mfc等有他們自己的函數,我其實之前也用過,只不過忘掉 了。現在我的庫時win32的純c++寫出來的。他們用了個_getcwd,用的標頭檔#include <direct.h>代碼例子如下。 char Buf[1000]; int nLen =
Time of Update: 2018-12-03
一個很簡單的程式: view plaincopy to clipboardprint?#include "boost/python.hpp" int _tmain(int argc, _TCHAR* argv[]) { Py_Initialize(); PyRun_SimpleString("print 'hello'"); Py_Finalize(); system("pause"); return 0; } #include
Time of Update: 2018-12-03
原來一篇總結了下 C 標準庫的 setlocale() 用法,這篇講解的是 C++ 標準庫中 locale 類的用法。參考:cplusplus.com 上關於標準 C++ 中國際化支援的參考:Localization libraryLocale classThe C++ Standard Library(Nicolai M. Josuttis,侯捷譯)第 14 章 Internationalization(國際化)locale 類在標頭檔 <locale> 中聲明,另外可能會用到 &
Time of Update: 2018-12-03
最近有時間,繼續學習C++,寫了一段遍曆檔案夾的代碼。拿出來希望大家指教。void Common::File::ReadFiles(const wstring &directory,const wstring & extentions, void (* fileMethod)(const wstring &)){ WIN32_FIND_DATA findData; ZeroMemory(&findData,sizeof(findData));//對fi
Time of Update: 2018-12-03
如果你是學java的,那麼你很幸運,你就不會為瞭解記憶體和分配管理記憶體而絞盡腦汁了,前幾天學習了記憶體管理,和很多朋友討論了這個問題,大家有很多疑惑的的問題,今天算是做個總結吧。 電腦硬體系統主要有五大基本結構組成,運算器,控制器,儲存空間,輸入裝置,輸出裝置。 通常我們說的CPU(中央處理器)是有運算器和控制器組成的。 今天主要是談談儲存空間,我們現在寫程式用的C或c++都是進階語言,但是電腦是個機器,它只認識它自己的機器語言,我一直
Time of Update: 2018-12-03
在 Visual C# .NET 中使用自動化建立 Excel 宏2008-05-23 17:18本文逐步介紹如何在 Microsoft Visual C# .NET 中使 Microsoft Excel 自動運行以建立包含新宏(該宏與 CommandBar 按鈕關聯)的活頁簿。建立 Visual C# .NET 應用程式樣本的步驟1.啟動 Microsoft Visual Studio .NET。2.在檔案菜單上,單擊建立,然後單擊項目。從 Visual C# 項目類型中選擇 Windows
Time of Update: 2018-12-03
有時我們會使用string[] lines =System.IO.File.ReadAllLines(@"c:/root.ini", Encoding.Default);來得到文本中的資訊但是由於文字檔可能不規範,所以取到的字串數組內容有空格但是有時字串有比較或者輸出的需要,所以這些空格需要處理掉 情況一:要是字串數組中有空格項 比如會取到 a[0]="aa"; a[1]=" "; a[2]="
Time of Update: 2018-12-03
1、可重載運算子算術二元運算子 +、*、/、-、%算術一元運算子 +、-、++、--按位二元運算子 &、|、^、<<、>>按位一元運算子 !、~、true、false比較子 ==、!=、>=、<=、<、> 2、什麼叫運算子多載 重載:函數重載大家能夠理解。
Time of Update: 2018-12-03
/// <summary> /// 流方式匯出Excel /// </summary> /// <param name="dgv"></param> private void ExportToExcel(DataGridView dgv) { if (dgv.Rows.Count == 0) {