原创 C++中的引用和指針的區別

相同點 都是地址的概念,指針指向一塊內存,它的內容是所指內存的地址;引用是某塊內存的別名,可以說引用是更安全的指針。 定義和性質區別 (1)指針:指針是一個變量,只不過這個變量存儲的是一個地址,指向內存的一個存儲單元;而引用跟原來

原创 C++找出字符串中最長的不含重複字符的子串

題目:找字符串中最長的不重複子串 方法1:使用string和vector<string> string FindLongestNonRepeatSubstring(string str) { if (str.empty()) r

原创 劍指offer面試題3:在二維數組中查找數字

題目:給定一個二維整型數組和一個數字,查找該數字是否在二維數組中。該二維數組的特點是:每一行的數字遞增排序,每一列的數字也是遞增排序。 解題方案: 方案1:從數組中間開始查找; 若要查找的數字比中間數字大,則可能出現地方在該數

原创 C++—volatile、explicit、mutable關鍵字

轉自:http://blog.csdn.net/wendy_keeping/article/details/75201153 1.volatile關鍵字 volatile是類型修飾符(一致性、原則性、可見性) <1>防止多線程對

原创 引用和指針的區別

指針和引用都是複合類型,都與內存中實際存在的對象有聯繫。 指針“指向”了內存中的某個對象,而引用“綁定到”內存中的某個對象,它們都實現了對其他對象的間接訪問,二者的區別主要有兩方面: 第一,指針本身就是一個對象,允許賦值和拷貝,而

原创 Linux進程間通信(二)之信號量

概念 1、臨界資源:同一時刻,只允許一個或有限個進程或線程訪問的資源。 例如: (1)多個人同時用一個筆簽字,此時只能有一個人用筆寫字,其他人只有等他寫完纔可以使用這支筆。 (2)若商場試衣間可以有3個試衣間,可以同時供3個

原创 C++刪除字符串中的子串

題目: string str = "62354iijnjnij26758667ijn615468565ij" 將子字符串"ijn"全部刪除 方法1: 該方法有個缺陷,它會將字符串中只要是ijn順序的字符都會刪除 int

原创 字符串筆試題1:找出子串在字符串中出現的次數,子串中的字符可以不連續,但順序固定

題目: 有一天,小明在遊戲中獲得了一串數字,直覺告訴他這不是一串普通的數字串,或許可以破解一些關於網易的祕密。破解的第一步,他很想知道,在這串數字中,最多可以挑出多少個‘9706’串。挑選的規則爲: (1)挑出

原创 劍指offfer面試題5:從尾到頭打印鏈表

題目:輸入一個鏈表的頭結點,從尾到頭反過來打印每個結點的值。 單鏈表的實現: 1、linklist.h #ifndef _LINKLIST_H_ #define _LINKLIST_H_ typedef int Elem_Typ

原创 C++中關鍵字auto和decltype的區別

C++11標準引入了auto和decltype類型說明符,它能讓編譯器幫我們去分析表達式所屬的類型。 auto和decltype的主要區別有三個方面: 第一,auto類型說明符用編譯器計算變量的初始值來推斷其類型,而decltyp

原创 劍指Offer面試題4:替換字符串中的空格

題目:請實現一個函數,把字符串中的每個空格替換成"%20"。例如輸入"We are happy.",則輸出"We%20are%20happy."。 解題方案: 方案一:從前往後替換空格。每找到一個空格將剩餘字符都向後移動兩位,並

原创 劍指offfer面試題1:字符串賦值運算符重載函數

題目:以下是類型CMyString的聲明,請爲該類型添加賦值運算符函數。 class CMyString { public: CMyString(char* pData = NULL); CMyString(con

原创 extern關鍵字的使用

概念 extern是外面的、外來的意思。extern可以置於變量或者函數前,以標示變量或者函數的定義在別的文件中,下面的代碼用到的這些變量或函數是外來的,不是本文件定義的,提示編譯器遇到此變量和函數在其他模塊中尋找其定義。 代碼舉

原创 C++實現帶寫時拷貝功能的String類

字符串寫時拷貝實現原理: 通過對象的引用計數來減少內存的申請開銷,經過拷貝構造或賦值函數得到的所有對象,在還沒有對其中某個某個對象進行修改操作時,都共享一個對象的內存。否則,如果原有對象的引用計數大於1時,將會爲修改的對象分配新

原创 (*(void(*) ())0)();------這是什麼?

(*(void(*)())0)(); 請問這條語句是什麼?有什麼作用? 當上一次面試官把這到題拋給我時,很遺憾,沒能將這道題的完整答案講給面試官。其實這個問題在《C陷阱和缺陷》和《C語言深度剖析》這兩本書都有過闡述。因此,我重新去