原创 大小端、位段(或者叫位域)和內存對齊

聽到好幾個朋友說到去一些公司做面試,總是遇到關於大小端、位段(或者叫位域)和內存對齊的考題,然後就不知所措了。雖然我認爲很多開發根本就用不到這個,但是我認爲很有必要學習理解這些知識點,因爲它可以讓你更瞭解C++的,瞭解程序在內存的運行情況

原创 分離鏈接法實現哈希表

代碼通過VS2008編譯 /*  *@author  : Fisher Wang  *@function: Realize a hash table  *@date    : 11/4/2013 */ hash_table.h #incl

原创 c++輸出(

代碼通過VS2008編譯運行 注意:輸出和輸入操作符,必須聲明爲類的友元函數 #include <iostream> #include<fstream> #include <string> class CheakoutRecord { p

原创 C++利用new_handler()函數處理異常

C++利用new_handler()函數處理異常 C++規定,new_handler要執行下述操作中的一種: (1)使new有更多的內存使用,然後返回 (2)拋出一個bad_alloc異常或者其派生異常 (3)調用abort或者exit退

原创 c++保證對象在創建時正確初始化

通常如果你使用c part of c++,而且初始化會招致運行期成本,那麼你可以不保證初始化,但是一旦進入c++ no_part of c,那麼你一定要保證對象正確初始化,這就是爲什麼在c中array沒有初始化,但是到了C++中vecto

原创 c/c++獲取本機時間

通過vs2008編譯運行 #include <iostream> #include <string> #include<time.h>//必須包含time.h int main() {     struct tm *tm;//需要定義t

原创 宏條件編譯

//在vs2008下編譯通過 #include <iostream> #include<fstream> #ifndef OPTION_LONG//預處理定義 #define OPTION_LONG 1 #define OPTION_DE

原创 c++輸入輸出流介紹

簡介 本教程將以C++最基本的文件I/O(輸出/輸出)開始。此後,我將從更深入的方面,爲你展示一些技巧,並分析給出一些有用的函數。 你需要對C++有一個較好的理解,否則這個教程於你而言將是陌生而毫無用處。   你的第一個程序   首

原创 setbuf函數使用注意事項

程序輸出有兩種方式:一種是即時處理方式,另一種是先暫存起來,然後再大塊寫入的方式,前者往往造成較高的系統負擔。因此,c語言實現通常都允許程序員進行實際的寫操作之前控制產生的輸出數據量。 這種控制能力一般是通過庫函數setbuf實現的。如果

原创 重載debug版本的operator new和operator delete

在實際調試中爲了調試方便,我們通常重載一些庫函數,在這篇文章中我會重載operator new和operator delete(注意不是new operator和delete operator),讓它們可以打印出一些額外信息(程序通過VS

原创 騰訊2012年實習生筆試加分題

之前參加2012年騰訊實習生筆試時,在考場中遇到一道加分題,當時靈光一閃,直接揮筆就解決這道題目。今天看到學校論壇上有師弟師妹們在詢問這題的解法,就寫篇博客來分享我的解法吧,也歡迎大家討論其它解法。     首先來看題目描述: 三 、加

原创 不需要編譯器自己生成的函數,就應該明確拒絕

不需要編譯器自己生成的函數,就應該明確拒絕 在C++類的設計中要注意防止類自身生成的函數對實際應用的干擾。舉個例子:一個表示個人信息的類,class PersonalInformation{ ..... };,對於個人信息,從原則上來說不

原创 Bloom Filter的原理基本介紹

Bloom Filter概念和原理 焦萌 2007年1月27日   Bloom Filter是一種空間效率很高的隨機數據結構,它利用位數組很簡潔地表示一個集合,並能判斷一個元素是否屬於這個集合。Bloom Filter的這種高效是有一定代

原创 結構體和聯合體的區別

  結構體和聯合體的主要區別是:結構體內部數據時分開放的,而聯合體所有數據是放在一個地址空間內,我們只能使用其中一個數據。下面舉例說明:代碼均通過vs2008編譯      #include <iostream> int main ()

原创 vc6.0移植到vs2008下問題總結

最近由於要在SISCO的MMS庫基礎上開發,需將開發平臺由VC6.0升級至VS2008,所以需要將原有的項目遷移,免不了碰到移植上的一些問題,特將它們歸納如下: 1 消息映射 VS2008對消息的檢查更爲嚴格,以前在VC6下完全正常運行的