原创 動態內存

一、C++中的三種內存 1、靜態內存 靜態內存用來保存局部static對象、類static數據成員以及定義在任意函數之外的變量。這些對象由編譯器自動創建和銷燬。 注意:靜態內存中保存的對象會被賦予默認的初值。 2、棧內存 棧內存用來保存定

原创 關聯容器

順序容器是按照它們在容器中的位置來順序保存和訪問的,而關聯容器是按照關鍵字來保存和訪問的。 1、初始化 關聯容器分爲兩類:map和set. a)、map是關鍵字-值對;set只有關鍵字。 map定義: map<string,size_t

原创 泛型算法

algorithm頭文件中定義了大多數算法。 這些算法並不直接操作容器,而是遍歷由兩個迭代器指定的一個元素範圍,對其中的每個元素進行一些處理。 迭代器令算法不依賴於容器類型,但是算法依賴於元素類型的操作。大多數算法都使用了一個(或多個)元

原创 C/C++內存與運行時深入研究

C/C++內存與運行時深入研究 [作者Jean.Love]       ---------------------------------------------------------------------------------

原创 左值、右值、左值引用、右值引用

一、c++中的左值和右值 誤區:左值位於等號左邊,右值位於等號右邊。 C++11中的定義:左值表達式表示的是一個對象的身份(在內存中的位置),而右值表達式表示的是對象的值(內容)。 左值和右值都是針對表達式而言的,左值是持久的,右值是短暫

原创 取石子游戲

題目: 1堆石子有n個,兩人輪流取.先取者第1次可以取任意多個,但不能全部取完.以後每次取的石子數不能超過上次取子數的2倍。 取完者勝.先取者負輸出2.先取者勝輸出1. 輸入: 大於2的整數,表示石子的個數。 輸出: 1或者2 樣例: 輸

原创 電話號碼的翻譯

題目: 將一串電話號碼Zero One Two Three...翻譯成數字0 1 2 3...中間會有Double 要求:將輸入的英文電話號碼轉換成數字輸出,當輸入有空格,非法字符,兩個Double相連,Double位於最後一個單詞時,均

原创 水仙花數

題目: 水仙花數是一個三位數,它的各個位的3次方等於它本身。如153=1^3+5^3+3^3,因此153是一個水仙花數。現在要求特定數字範圍內的所有水仙花數。 輸入: 輸入若干行,每行含有兩個整數n,m,表示數組的範圍。 輸出: 輸出行數

原创 排序方法的比較

首先給出各個排序方式的性能比較: 排序方法的比較 類別 排序方法 時間複雜度 空間複雜度 穩定性 平均情況 最好情況 最壞情況 輔助存儲 插入排序 直接插入 O(n2) O(n)

原创 合理的電話號碼

題目: 某城市電話號碼由三部分組成,分別是: 地區碼:空白或者三位數字; 前綴:非0開頭的三位數字 後綴:4位數字 假定被測程序能接受一切符合上述規定的電話號碼,輸出0  拒絕一切不符合規定的電話號碼,輸出1. 請編寫程序

原创 重載與類型轉換

重載:定義類與類之間運算符所要完成的具體工作。 類型轉換:定義類與類、類與內置類型之間的轉化規則。 一、重載運算概述 1、格式 重載運算符本質上是具有特殊名字的函數:由關鍵字operator和其後要定義的運算符號共同組成。 2、形參數目

原创 判斷一個數字中是否包含兩個相同的子串

題目: 判斷給定的一個數字,把它當成字符串以後,該字符串中是否包含相同的兩個子串,子串的長度要求大於等於2。 比如:12123,該數字包含兩個“12”子串; 又比如:1223122,該數字包含兩個“122”子串。 輸入: 待判斷的

原创 超長正整數的相加

題目: 設計一個算法實現超長正整數的相加。 輸入:兩個超長正整數 輸出:這兩個數相加的結果 例子: 輸入:兩個整數123456789123456789 123456789123456789 輸出:這兩個數相加的結果246913578246

原创 內存拷貝函數的實現

簡單的內存拷貝函數的實現: void *memcpy(void *dest, const void *src, size_t count) { char *tmp = dest; const char *s = src; whi

原创 淘汰賽車

題目: 賽車比賽在潘多拉星球變得越來越流行了。但是他們的比賽跟我們平常的不太一樣:n 輛賽車在一條長長的直道上展開同臺競技。每輛賽車的速度都爲 1m/s,整條賽道在每一米都有座標標記。 在比賽的賽車中,賽車 i 從 0 秒開始由 ai