原创 美妙的STL

STL,英文全稱 standard template library,中文可譯爲標準模板庫或者泛型庫,是C++標準庫的重要組成部分,其包含有大量的模板類和模板函數,是 C++ 提供的一個基礎模板的集合,用於完成諸如輸入/輸出、數學

原创 STL容器:list的簡介與使用

list的介紹 list是可以在常數範圍內在任意位置進行插入和刪除的序列式容器,並且該容器可以前後雙向迭代。 list的底層是雙向鏈表結構,雙向鏈表中每個元素存儲在互不相關的獨立節點中,在節點中通過指針指向其前一個元素和後一個元

原创 STL容器適配器:stack的簡介與使用

stack的介紹 stack是一種容器適配器,專門用在具有先進後出操作的上下文環境中,其刪除只能從容器的一端進行元素的插入與提取操作。 stack是作爲容器適配器被實現的,容器適配器即是對特定類封裝作爲其底層的容器,並提供一組特

原创 STL容器:deque的簡介與使用

deque的原理介紹 deque(雙端隊列):是一種雙開口的"連續"空間的數據結構,雙開口的含義是:可以在頭尾兩端進行插入和刪除操作,且時間複雜度爲O(1),與vector比較,頭插效率高,不需要搬移元素;與list比較,空間利用

原创 STL容器:vector的簡介與使用

vector的介紹 vector是表示可變大小數組的序列容器。 就像數組一樣,vector也採用連續存儲空間來存儲元素。也就是意味着可以採用下標對vector的元素進行訪問,和數組一樣高效。但是又不像數組,它的大小是可以動態改變

原创 C++模板簡介與使用

模板的出現意味着STL的誕生。 目錄:         函數模板         類模板         類型模板參數         非類型模板參數         模板的特化         全特化和偏特化         模

原创 vector、list、deque的優缺點區別

vector 優點: 支持下標的隨機訪問,間接的就很好的支持了排序、查找、堆等等算法 缺點: 頭部和中間的插入刪除效率低。時間複雜度 O(N),因爲需要搬移數據實現 插入數據空間不夠需要增容,增容需要開闢新空間、拷貝數據、釋

原创 STL容器:string類的簡介與使用

傳統的C 沒有專門的字符串類型,需要使用常量字符串或者字符數組來使用 在實際運用中,一般使用字符串函數來處理 string類基本操作 string是表示字符串的字符串類 該類的接口與常規容器的接口基本相同,再添加了一些專門用

原创 類的6個默認成員函數:構造、析構、拷貝構造、賦值重載、取地址重載

如果一個類中什麼成員都沒有,簡稱爲空類。空類中什麼都沒有嗎?並不是的,任何一個類在我們不寫的情況下,都會自動生成下面6個默認成員函數: 但是一般我們常用的只有前四個:構造函數、析構函數、拷貝構造、賦值重載 構造函數 構造函數是

原创 this指針存在的意義

首先,我們先來看一個Date類: #include <iostream> using namespace std; class Date { public: void Init(int year, int month,

原创 C++突破封裝:友元和內部類

首先來看一個Date類,當我們想要重載實現 operator<< 和 operator>> 一般會在類的內部寫: class Date { public: ostream& operator<<(const ostream

原创 常見的const應用

const定義變量 const定義變量後,該變量就沒有了寫權限,只有讀權限 1.const用於定義變量時,要進行初始化 例如: const int a = 10; //合法 const int a; //非法 2.數據類型對於co

原创 輕鬆掌握static成員

聲明爲static的類成員稱爲類的靜態成員,用static修飾的成員變量,稱之爲靜態成員變量;用static修飾的成員函數,稱之爲靜態成員函數。靜態的成員變量一定要在類外進行初始化。 靜態成員爲所有類對象所共享,不屬於某個具體的

原创 c++入門基礎

    衆所周知,c++是一門面向對象的語言,不同於c的面向過程。在學習時,首先我們要懂得一些基礎入門知識。 目錄:         命名空間         缺省函數         函數重載         extern “C