原创 使用stringstream簡化類型轉換

<sstream>庫定義了三種類:istringstream、ostringstream和stringstream,分別用來進行流的輸入、輸出和輸入輸出操作。另外,每個類都有一個對應的寬字符集版本。 注意,<sstream>使用strin

原创 求1 2 3 ... n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)

方法一:遞歸,O(n)的複雜度(利用運算符短路模擬if) int Sum_Solution(int n) { int a = 1; n > 1 && (a = n + Sum_Solution(n - 1)); return a;

原创 替換空格(將字符串中的空格替換爲20%)

請實現一個函數,將一個字符串中的空格替換成“%20”。例如,當字符串爲 We Are Happy.則經過替換之後的字符串爲 We%20Are%20Happy。 解題思路:先遍歷找出空格總數,並計算出替換之後的字符串的總長度。然後從字符串的

原创 ++運算符重載

運算符的重載: 運算符與類結合,產生新的含義。  運算符重載的作用:爲了實現類的多態性(多態是指一個函數名有多種含義) 實現運算符的重載的方式:類的成員函數 或 友元函數(類外的普通函數) ++和--運算符的重載: 1、遞增和遞減一般是改

原创 插入排序

插入排序是一種最簡單直觀的排序算法,它的工作原理是通過構建有序序列,對於未排序數據,在已排序序列中從後向前掃描,找到相應位置並插入。     算法步驟 將第一待排序序列第一個元素看做一個有序序列,把第二個元素到最後一個元素當成是未排序序

原创 動態內存分配

一、內存區域 1、堆、棧(const變量在棧裏)、全局區、常量區、代碼區 常量區,代碼區是隻讀段,不能改 棧:系統自動分配的空間,只要不特殊聲明,就定義在棧區,函數的區域也在棧上。棧是向下增長的。 堆:使用動態內存分配的方式可以申請堆空間

原创 友元、內部類

1、友元 友元就是讓一個外部函數或者外部類能訪問我的私有成員。 友元打破了原有的權限制度,所以十分危險,不建議使用。 2、內部類 在另一個類內聲明的類 它屬於外部類域中的一員,實例化對象需要使用域操作運算符(::),同時它有權限的限制。

原创 練習函數重載

有以下結構:  struct student{  char name[32];  int age;  int class;  bool sex;  };  寫出函數,用函數重載的方式編寫程序,統計出一個以上述結構爲基準的結構體數組中: 

原创 類和對象2

一,構造函數 1,構造函數是一個特殊的成員函數,不存在返回值,名字和類名相同,在實例化對象的時候自動調用。傳什麼參數調什麼構造 2,系統會自動提供一個默認的構造函數,如果自己實現了構造函數,則系統不再提供默認的構造函數。 帶參數的構造函數

原创 類和對象3

類和對象3   一、初始化列表   1、狹義初始化   在定義變量的時候直接進行初始化,int i=3;   2,廣義初始化 第一次給變量賦值就叫做初始化的情況叫廣義初始化 int a; ...//跟a無關的代碼 a=3   初始化列表相

原创 類和對象

一,類和對象 結構體在C和C++的不同 1,在C++中,用結構體定義變量不需要加struct,而c中不行 2,在C++中,可以定義空結構體,大小爲1,而c不行 3,在C++中,可以在結構體中聲明甚至實現函數,而c中只能放函數指針 4,在C

原创 名字空間(namespace),函數重載

一、名字空間(namespace) 1、名字空間可以解決函數、全局變量名重複的問題,包在不同的名字空間裏的重複函數實際就是兩個完全無關的函數。 2、名字空間允許嵌套,嵌套內部和外部沒有任何關係。 3、名字空間允許重名,重名的名字空間會被合

原创 希爾排序

 希爾排序是對直接插入排序的優化,數組越有序,插入排序更快 void ShellSort(int * src, int n) { int i, j, k; int gap, tmp; for (gap = n / 2; gap;

原创 快速排序(雙指針法,刨坑法,hoare法)

分割策略: #include <stdio.h> #include <stdlib.h> void InsertSort(int * src, int n) { int i, j; int tmp; for (i = 1; i

原创 直接插入排序

核心思想:1,拷貝  2,平移,3,插入 void InsertSort(int * src, int n) { int i, j; int tmp; for (i = 1; i < n; i++) { tmp = src