原创 C++學習 STL組件之vector部分總結

自從上一次學習STL的組件(string)已經過去有些日子了,主要是還在進行其他方面的學習,現在有了空閒繼續來總結C++STL方面,vectot也是很早之前就學過的部分,學習過程中也是讓我深深感到了C++STL的實用,現在在做有關方面的題目

原创 C++ 菱形虛擬繼承 與 指針偏移問題

首先在談到菱形虛擬繼承之前先說明一下菱形繼承: 菱形繼承是多繼承的一種特殊情況(如下,畫渣勿噴): 圖中 B C 兩個類都繼承了A類,而 B C 又都被 D類繼承按照繼承的定義,派生類當中都包含了基類,而這時虛擬繼承這種情況就會產生問題 <

原创 C++ 關鍵字 explicit 的使用

首先是定義:explicit關鍵字只能修飾只有一個參數的構造函數,或者有多個參數,但是除第一個參數外其他的參數都有默認值的構造函數。它的作用是表明構造函數是顯式方式顯示的。(類構造函數默認爲隱式) 如果類構造函數參數大於或等於兩個時, 是不

原创 C++ sort()排序函數用法

本文轉自https://blog.csdn.net/l198738655/article/details/79872738 sort(first_pointer,first_pointer+n,cmp) 該函數可以給數組,或者鏈表list、

原创 C/C++ 超長正整數相加

本題整體思想不難,主要是想好用什麼容器去存儲計算值和計算結果值,這裏用的是字符串,當然也可以用數組,題目鏈接:https://www.nowcoder.com/practice/5821836e0ec140c1aa29510fd05f45f

原创 C++ 參數解析(來源牛客網)

題目地址:參數解析重點是要意識到利用flag來區別處理在“”內外的字符 #include<iostream> #include<vector> #include<string> using namespace std; int main(

原创 C/C++ 快速排序的實現

代碼如下: #include<iostream> using namespace std; void qS(int *array,int left,int right){ if(left<right){ //快速排序的終止條件,當

原创 C++ 友元函數友元類

  友元函數是可以直接訪問類的私有成員的非成員函數。它是定義在類外的普通函數,它不屬於任何類,但需要在類的定義中加以聲明,聲明時只需在友元的名稱前加上關鍵字friend,其格式如下:       friend 類型 函數名(形式參數);

原创 C++ 關於繼承部分重要知識點

1.繼承體現了面向對象設計的層次結構,體現了有撿到到複雜的認知過程 2.繼承是使代碼可以複用的最重要手段 3.繼承方式和訪問限定符 4.繼承基類成員訪問方式的變化 5.實際運用中一般都是使用public繼承,幾乎很少使用protected/

原创 C++ 容易犯的錯誤和容易忘記的知識點(一)

在使用printf輸出時,關於字符串輸出格式對於 %-a.bs: 表示左對齊a 表示輸出佔的寬度,如果這個寬度不夠,則自動擴展到足夠寬度b 表示輸出字符串中多少個字符,如果原字符串長於這個寬度,則截斷,多餘的不輸出 2.關於指針數組

原创 C/C++ 計算結構體大小

計算結構體的大小:結構體中可以定義的數據類型:1.基本類型2.上面已經出現過的數據類型,比如說上面已經定義過的結構體3.指向自己的指針因爲內存對齊的問題,各個數據類型放的位置不同就會導致結構體的大小不一樣,那麼到底怎樣計算一個結構體的大小呢

原创 C++ STL主要組件之String總結(第一部分,構造和操作)

最近在學習C++時,進入到了STL的學習階段,在發現到這個部分的重要性時,我打算把對STL的學習分步驟記錄下來,我首先打算學習的是組件String的部分,此文章主要只記錄內部構造和對象基本操作。 STL是由C++提供的標準模板庫,內含多個主

原创 C++中 NULL和nullptr關係

在C++中,NULL是一個宏,其實質是0。而nullptr是從C++11開始引入的關鍵字。在C語言中,NULL的定義爲(void )0,因爲C語言可以隱式轉換。但在C++中,int p = (void ) 0這樣的語句會報錯,因爲在C++中

原创 C++ STL主要組件之String總結(第二部分 深、淺拷貝問題以及賦值運算符重載)

第一部分連接https://blog.51cto.com/14232799/2447326 二.String的模擬實現 在第一步之後緊接着的就該是模擬實現部分,這一部分主要是體現自己對第一部分的掌握情況。強烈推薦和我一樣在學習String的

原创 有關realloc malloc calloc

realloc,malloc,calloc的區別三個函數的申明分別是: void realloc(void ptr, unsigned newsize); void malloc(unsigned size); void calloc(si