原创 LeetCode:整數反轉/迴文數判斷

題目: 給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。 輸入: 123 輸出: 321 輸入: -123 輸出: -321 輸入: 120 輸出: 21 注意: 假設我們的環境只能存儲得下 32 位的有符

原创 C++:lambda/函數對象/函數指針(函數名)

STL算法中通常會傳入一個謂詞來實現自定義的排序,查找數值等行爲。 lambda/函數對象/函數指針(函數名)均可以在這個情境中傳遞信息。在這種情境下對比一下三者的使用: 1.傳入函數指針(函數名) 例如,count_if ()函

原创 C++:指針/const

正好跟同學討論到如何理解指針常量與常量指針。 就順着這個思陸陸續續把指針及const的相關內容做個整理吧,也算是自己一個鞏固與理解的過程。 1.指針常量與常量指針 (1)指針常量 強調是指針, 這個指針是一個常量 那它的定義應該是

原创 數據結構:雙向鏈表的c語言實現

dlinklist.h #ifndef _DLINKLIST_H_ #define _DLINKLIST_H_ #include<stdio.h> typedef void DLinkList; typedef struc

原创 LeetCode:三數之和/最接近的三數之和

題目: 給定一個包含 n 個整數的數組 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?找出所有滿足條件且不重複的三元組。 注意:答案中不可以包含重複的三元組。 例如, 給定數組 n

原创 C++:封裝專題

本篇通過類來討論C++中封裝的問題。 不是全面講述封裝,是摘錄一些我學習過濾後覺得值得注意的一些點。 1.訪問控制 public,private,protected 2.構造函數。 構造函數需要考慮多種情況, (1)默認(無參或有

原创 C++:基礎知識羅列

1.c 語言中枚舉本質就是整型,枚舉變量可以用任意整型賦值。 而 c++中枚舉變量,只能用被枚舉出來的元素初始化 (c++中的枚舉更嚴格啊,只能用定義好的特定幾個元素) 2.c++中的部分表達式可以賦值的。 (這個的實現機理應該是

原创 C++:動態庫生成與測試

一、動態庫生成 1.新建項目 (1)使用vs建立動態庫項目時要選擇windows桌面開發嚮導,選動態庫,空項目 (2)要在函數前加導出函數的宏定義__declspec(dllexport) 實例一:每個函數定義前都加該宏定義 __

原创 數據結構:順序表之C++模板類實現

C++模板類實現順序表相較c語言實現, 表的創建和銷燬可以構造與析構函數管理。 定義表的長度、容量以及內存數組可以用私有成員實現,替代c語言中的結構體定義。 c定義: 定義表的結構體 typedef struct _tag_Seq

原创 C++:多態專題

多態的實現主要是通過純虛函數實現。 1.含有純虛函數的類,稱爲抽象基類,不可實列化。即不能創建對象,存在的意義就是被繼承,提供族類的公共接口,java 中稱爲 interface。 2. 純虛函數只有聲明,沒有實現,被“初始化”爲

原创 數據結構:線性鏈表的c語言實現

鏈表實現的邏輯分析圖解 爲了實現業務結點的靈活定義,我們需要定義單獨定義鏈表結點來實現鏈表的串接與查找,而要讓業務結點包含鏈表結點,以實現通過鏈表結點將業務結點串接起來。 而爲了實現業務結點與鏈表結點的地址統一,我們在定義業務結

原创 數據結構:循環鏈表的c語言實現

circlelist .h #ifndef _MYCIRCLELIST_H_ #define _MYCIRCLELIST_H_ #include<stdio.h> #include<stdlib.h> #include<str

原创 數據結構:順序表圖解及c代碼

順序表思想 定義了一個順序表的結構體,存放了它的長度,容量信息,還有申請的存結點的內存的首地址。 結構體中定義的是一個二級指針,申請的內存是存放傳入結點的指針。 內存管理方面:順序表管理指表內存和指針數組內存。 結點的內存由上層

原创 算法:統計某一數字出現的最大次數

題目背景: 給定一個數組,已知數組大小,其中有已知數字大小範圍的一組數字,統計其中出現次數最多的數字及其出現次數 解決方法:空間換時間 (1)申請一塊與數字大小範圍一致的內存空間(例如數組),數組下標加1與數字值一 一對應,該塊空

原创 C++:繼承(派生)專題

1.private繼承時在子類中不可見 pretected 對於外界訪問屬性來說,等同於私有,但可以派生類中可見。 public 作用:傳承接口 間接的傳承了數據(protected) protected 作用:傳承數據,間接封殺