原创 vector

vector 的相關知識 1.vector的概述 vector容器類型,而vector<數據類型> 是定義的對象類型 vector a; a爲定義的vector類型的對象 其中vector中的數據不是以’\0’結束,而s

原创 串中找串(strstr的模擬實現)

串中找串 這個串可不是羊肉串奧,喜歡擼串的盆有別失望啊。來看看我們的串吧。 所謂的串中找串是指在一個字符串中查找另外一個字符串(所謂的子串)。 想啥呢?當然不是羊肉串了。 需求: 1.我們的需求是當找到我們所找的子串的時候,返

原创 c/c++中的const

一:const簡介 const修飾只讀變量,必須在定義的同時進行初始化 編輯器通常不爲普通的const只讀變量分配內存空間,而是將他們保存在符號表中。 二:const的用途 1.修飾一般變量 const int i=0;

原创 string類中的傳統與現代實現方式

string類中的傳統與現代實現方式 傳統寫法: 【原則】: 1.通過自己申請資源,拷貝內容 2.不會創建臨時對象 現在寫法: 【原則】: 1.自己不申請空間,不拷貝內容 2.通過調用構造函數(申請空間,拷貝內容)生成一個

原创 迭代器

迭代器 迭代器的簡介 迭代器(iterator)是一中檢查容器內元素並遍歷元素的數據類型。 (1):每種容器類型都定義了自己的迭代器類型,如string: string::iterator sit; 這條語句定義了一個名爲s

原创 string類部分接口

String類的接口實現 一:string的基本用法 1.:用string類實例化對象的幾種方式 (1).普通的方式實例化方式 string s; (2).調用構造函數 string s1("hello world!");

原创 模板初階

模板初階 1.泛型編程 函數重載的方式實現不同類型的交換函數 void Swap(int& left, int& right) { int temp = left; left = right; right = temp;

原创 懶漢模式的實現

懶漢模式是單例模式中的一種,旨在實現一種全局只能使用一份資源的目的。 懶漢模式:在第一次實例化對象的時候調用一次構造函數,之後實例化的對象都通過單例對象指針指向第一次申請的的內存空間,從而保證了全局只有一份資源可以使用。

原创 實現只在堆上創建對象的類

設計一個只能在堆上創建對象的類 實現類的條件 1.構造函數私有化 2.提供公共接口:在堆上創建對象 3.在類外面無法創建對象,函數用類名調用,公共接口必須爲static接口 4.防止拷貝: <1>:拷貝構造私有化,只聲明不實現

原创 C++對C語言的加強點

c++對C語言的加強 1.c++中全局變量的檢測增強 int a; int a = 10; 在 C++ 中編譯成功,但是在C語言中提示重定義錯誤 2.函數檢測增強,參數類型增強,返回值類型增強,函數調用的參數檢測增強 2.1

原创 C++命名空間總結

命名空間 一:命名空間的特點 用途:解決命名衝突問題 1.命名空間下可以放函數、變量、結構體、類 namespace A{ int a = 10; //定義了變量 void b(){ //定義了函數 }

原创 類中的內存對齊問題

類中的內存對齊問題 首先提出幾個問題 1.空類是否佔據空間大小? 2.類中定義的函數是否計入類的大小當中? 3.內部類是否計入外部類的大小當中? 測試代碼 #include<iostream> using namespac

原创 實現只在棧上創建對象的類

實現只在棧上創建對象的類 滿足條件: 只能在棧上創建對象,即不能在堆上創建對象,因此將new的功能屏蔽掉即可,即屏蔽掉operator new和定位new表達式,注意:屏蔽了operator new,實際也將定位new屏蔽

原创 C ++入門

c++入門 1.基礎的C++程序編寫 1.1:第一個程序 #include<iostream> using namespace std; int main(){ cout<<"hello world!"<<endl;

原创 在vim中如何批量去註釋代碼

在vim中如何批量去/註釋代碼 用慣了vs系列的編輯器,感覺vs是那麼的順手。所以剛接觸到vim的時候覺得己好像回到瞭解放前。鑑於我也是使用vim的小白,所以對vim比較疑惑,它對代碼進行註釋時難道要一行一行的進行嗎? 事實並非如