原创 企業級數據結構-順序棧實現

Stack基本概念 棧是一種  特殊的線性表  棧僅能在線性表的一端進行操作 棧頂(Top):允許操作的一端 棧底(Bottom):不允許操作的一端 Stack的常用操作 創建棧 銷燬棧 清空棧 進棧 出棧 獲取棧頂元素 獲

原创 c++學生管理系統(STL)

      哥小白剛剛涉及一些STL想鞏固之前學的C++和STL,      c++第一次用類,複製構造函數和操作符重載,STL寫學生管理系統,,可

原创 C++中的抽象類(接口和協議)

有關多繼承的說明 被實際開發經驗拋棄的多繼承 工程開發中真正意義上的多繼承是幾乎不被使用的 多重繼承帶來的代碼複雜性遠多於其帶來的便利 多重繼承對代碼維護性上的影響是災難性的 在設計方法上,任何多繼承都可以用單繼承代替 多繼承的麻煩:多繼

原创 重寫pk重載理解區分

重寫 PK 重載理解 函數重載 必須在同一個類中進行 子類無法重載父類的函數,父類同名函數將被名稱覆蓋 重載是在編譯期間根據參數類型和個數決定函數調用 函數重寫 必鬚髮生於父類與子類之間 並且父類與子類中的函數必須有完全相同的原型 使

原创 初學c++引用計數器

   以後會多寫些本質論的文章,這樣可以更好的引導自己去深入思考。        爲什麼要用引用計數?         場景:代碼裏X是一個非常重要的資源,模塊A,B,C都有對其指針的引用,那麼爲了不出現內存泄露,常規的代碼我們要怎

原创 C++ 頂層底層 const

本文的主要參考來源來自於: C++ Primer 中文版(第 5 版) 第 57 面至第 58 面 1. 頂層 const 與底層 const 概念 我們知道,指針本身是一個對象,因爲,指針實際對應着內存單元的一段存儲空間,然而

原创 企業級數據結構-棧的鏈式存儲設計與實現

1、基本概念 鏈式棧是一種特殊的鏈表,下面實現的代碼是基於鏈表而來的,請參考前幾篇的博客 linkstack.h #ifndef _MY_LINKSTACK_H_ #define _MY_LINKSTACK_H_ typedef v

原创 C++類中的靜態成員變量和靜態成員函數的作用

數據成員可以分爲靜態變量、非靜態變量兩種。 靜態成員:靜態類中的成員加入static修飾符,即是靜態成員,可以使用類名+靜態成員名訪問此靜態成員,因爲靜態成員存在於內存,非靜態成員需要實例化纔會分配內存,所以            

原创 C++多態基礎以及編譯器多態實現原理

1、 多態基礎 多態的實現效果 多態:同樣的調用語句有多種不同的表現形態; 多態實現的三個條件  有繼承、有virtual重寫、有父類指針(引用)指向子類對象。 多態的C++實現    virtual關鍵字,告訴編譯器這個函數要支持多

原创 企業級數據結構-線性表順序存儲

1、基本概念 2、設計與實現 插入元素算法 判斷線性表是否合法 判斷插入位置是否合法 把最後一個元素到插入位置的元素後移一個位置 將新元素插入 線性表長度加1 獲取元素操作 判斷線性表是否合法 判斷位置是否合法 直接通過數組下標

原创 企業級數據結構之-順序表的連式存儲

線性表的鏈式存儲 1、基本概念 鏈式存儲定義 爲了表示每個數據元素與其直接後繼元素之間的邏輯關係,每個元素除了存儲本身的信息外,還需要存儲指示其直接後繼的信息。     表頭結點 鏈表中的第一個結點,包含指向第一個數據元素的指針以及鏈表

原创 小學期作業-老師評分系統c++stl實現

#include<iostream> #include<string> #include<list> #include<fstream> #include<functional> #include<Windows.h> #includ

原创 ACM牛人給的新手建議

ACM牛人給的新手建議   ACM進階 一位高手的建議: 一般要做到50行以內的程序不用調試、100行以內的二分鐘內調試成功. 訓練過ACM等程序設計競賽的人在算法上有較大的優勢,這就說明當你編程能力提高之後,主要時間是花在思考算法

原创 企業級數據結構-循環鏈表(約瑟夫問題)

循環鏈表 1、基本概念 循環鏈表的定義:將單鏈表中最後一個數據元素的next指針指向第一個元素 循環鏈表擁有單鏈表的所有操作 創建鏈表 銷燬鏈表 獲取鏈表長度 清空鏈表 獲取第pos個元素操作 插入元素到位置pos 刪除位置pos處

原创 C++ 類類型隱式轉換

隱式類類型轉換:“可以用單個實參來調用的構造函數定義了從形參類型到該類型的一個隱式轉換。”(C++ Primer)首先要單個實參,你可以把構造函數colour的默認實參去掉,也就是定義一個對象必須要兩個參數的時候,文件編譯不能通過。 (以