Time of Update: 2017-01-18
1. 符號分類(1)全域符號:非靜態全域變數,非靜態函數(2)外部符號:定義於其它模組,而被本模組引用的全域變數和函數(3)本地符號:靜態變數(包括全域和局部),靜態函數對於靜態局部變數,編譯器會為其產生唯一的名字。如x.fun1,x.fun2。本地符號對連結器來說是不可見的。2. 符號決議當編譯器遇到一個不是本模組定義的符號時,會假設該函數由其它模組定義,並產生一個連結器符號表條目,交由連結器處理。如果連結器在它的任何輸入模組都沒有找到該符號,會給出一個類似undefined
Time of Update: 2017-01-18
右值引用(及其支援的Move語意和完美轉寄)是C++0x將要加入的最重大語言特性之一,這點從該特性的提案在C++ - State of the
Time of Update: 2017-01-18
關於邏輯移位、算術移位可參見迅雷深大筆試題部分。的一道題。以前看到C++標準上說,移位元運算符(<<、>>)出界時的行為並不確定:The behavior is undefined if the right operand is negative, orgreater than or equal to the length in bits of the promoted left
Time of Update: 2017-01-18
本文執行個體講述了C++統計中英文大小寫字母、數字、空格及其他字元個數的方法。分享給大家供大家參考,具體如下:/** 作 者: 劉同賓* 完成日期:2012 年 11 月 28 日* 版 本 號:v1.0* 輸入描述:* 問題描述: 有一篇文章,共有三行文字,每行有80個字元。要求分別統計出其中英文大寫字母、小寫字母、數字、空格以及其他字元的個數。* 程式輸出:* 問題分析:略* 演算法設計:略*/#include<iostream>using namespace std;int
Time of Update: 2017-01-18
本文執行個體講述了C++實現將簡單密碼譯回原文的方法。分享給大家供大家參考,具體如下:/** 作 者: 劉同賓* 完成日期:2012 年 11 月 28 日* 版 本 號:v1.0* 輸入描述:* 問題描述: 有一行電文,已按下面規律譯成密碼:* A-->Z a-->z* B-->Y b-->y* C-->X c-->x* 即第一個字母變成第26個字母,第i個字母變成第(26-i+1)個字母,非字母字元不變* 要求將密碼譯回原文。* 程式輸出:* 問題分析:
Time of Update: 2017-01-18
在C語言中,rand()函數可以用來產生隨機數,但是這不是真真意義上的隨機數,是一個偽隨機數,是根據一個數,我們可以稱它為種子,為基準以某個遞推公式推算出來的一係數,當這系列數很大的時候,就符合正態公布,從而相當於產生了隨機數,但這不是真正的隨機數,當電腦正常開機後,這個種子的值是定了的,除非你破壞了系統,為了改變這個種子的值,C提供了srand()函數,它的原形是void srand( int a)。 可能大家都知道C語言中的隨機函數random,可是random函數並不是ANSI
Time of Update: 2017-01-18
順序容器,它將單一類型元素聚集起來成為容器,然後根據位置來儲存和訪問這些元素,這就是順序容器。標準庫裡定義了三種類型:vector(支援快速隨機訪問)、list(支援快速插入、刪除)、deque(雙端隊列)容器只定義了少量操作,大多數額外的操作由演算法庫提供。容器內元素的類型約束;1、元素類型必須支援賦值運算;2、元素類型的對象必須可以複製。這是容器元素類型的最低要求,如果想支援一些其他特殊要求,則必須具備相關的性質。可以定義容器的容器vector< vector<int>
Time of Update: 2017-01-18
在c++中,可以為函數提供預設參數,這樣,在調用函數的時候,如果不提供參數,編譯器將為函數提供參數的預設值。下面從彙編看其原理。下面是c++源碼:複製代碼 代碼如下:int add(int a = 1, int b = 2) {//參數a b有預設值 return a + b;}int main() { int c= add();//不提供參數}下面是mian函數裡面的彙編碼:複製代碼 代碼如下:;
Time of Update: 2017-01-18
1.堆和棧(1)資料結構的堆和棧堆棧是兩種資料結構。棧(棧像裝資料的桶或箱子):是一種具有後進先出性質的資料結構,也就是說後存放的先取,先存放的後取。這就如同要取出放在箱子裡面底下的東西(放入的比較早的物體),首先要移開壓在它上面的物體(放入的比較晚的物體)。堆(堆像一棵倒過來的樹):是一種經過排序的樹形資料結構,每個結點都有一個值。通常所說的堆的資料結構,是指二元堆積。堆的特點是根結點的值最小(或最大),且根結點的兩個子樹也是一個堆。由於堆的這個特性,常用來實現優先隊列,堆的存取是隨意,這就如
Time of Update: 2017-01-18
由fork建立的新進程被稱為子進程(child
Time of Update: 2017-01-18
在c++中,當一個類含有虛函數的時候,類就具有了多態性。建構函式的一項重要功能就是初始化vptr指標,這是保證多態性的關鍵步驟。建構函式初始化vptr指標下面是c++源碼:class X {private: int i;public: X(int ii) { i = ii; } virtual void set(int ii) {//虛函數 i = ii; }};int main() { X x(1);}下面是對應的main函數彙編碼:_main PROC; 16 :
Time of Update: 2017-01-18
下面是啟動並執行效果圖核心代碼:複製代碼 代碼如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; /* * * 整理:張曉天 * Q Q:977602650 * 日期:2012
Time of Update: 2017-01-18
舉例:===================================================複製代碼 代碼如下:/** INITRM - Initialization of internal ram position register; 0x0000 0010 **/typedef union { byte Byte; struct { byte RAMHAL
Time of Update: 2017-01-18
朋友面試的一道面試題,分享給大家,面試官經常會問到的,實現string類的四大基本函數必掌握。一個C++類一般至少有四大函數,即建構函式、拷貝建構函式、解構函式和賦值函數,一般系統都會預設。但是往往系統預設的並不是我們所期望的,為此我們就有必要自己創造他們。在創造之前必須瞭解他們的作用和意義,做到有的放矢才能寫出有效函數。 #include <iostream> class CString { friend std::ostream & operator<<(std:
Time of Update: 2017-01-18
在學習c++的過程中,也曾經學習java,就發現java有類的嵌套,而看的c++的書,從來沒有哪個講c++的類可以嵌套,於是就試了一下,看是否c++可以嵌套類(編譯環境vc++6.0)於是有了下面的代碼:#include <iostream>using namespace std;class A{public: A(){ cout<<"this a"<<endl; } ~A(){cout<<"a dead"<<endl;}
Time of Update: 2017-01-18
一、重載(overload)指函數名相同,但是它的參數表列個數或順序,類型不同。但是不能靠傳回型別來判斷。(1)相同的範圍(在同一個範圍中) ;(2)函數名字相同;(3)參數不同;(4)virtual 關鍵字可有可無。(5)傳回值可以不同;二、重寫(也稱為覆蓋 override)是指衍生類別重新定義基類的虛函數,特徵是:(1)不在同一個範圍(分別位於衍生類別與基類) ;(2)函數名字相同;(3)參數相同;(4)基類函數必須有 virtual 關鍵字,不能有 static
Time of Update: 2017-01-18
1、堆排序定義n個關鍵字序列Kl,K2,…,Kn稱為堆,若且唯若該序列滿足如下性質(簡稱為堆性質):(1) ki≤K2i且ki≤K2i+1 或(2)Ki≥K2i且ki≥K2i+1(1≤i≤
Time of Update: 2017-01-18
快速判斷一個數是否是2的冪次方,若是,並判斷出來是多少次方!將2的冪次方寫成二進位形式後,很容易就會發現有一個特點:二進位中只有一個1,並且1後面跟了n個0; 因此問題可以轉化為判斷1後面是否跟了n個0就可以了。如果將這個數減去1後會發現,僅有的那個1會變為0,而原來的那n個0會變為1;因此將原來的數與去減去1後的數字進行與運算後會發現為零。最快速的方法: (number & number - 1) ==
Time of Update: 2017-01-18
題目:如果字串一的所有字元按其在字串中的順序出現在另外一個字串二中,則字串一稱之為字串二的子串。注意,並不要求子串(字串一)的字元必須連續出現在字串二中。請編寫一個函數,輸入兩個字串,求它們的最長公用子序列,並列印出最長公用子序列。例如:輸入兩個字串BDCABA和ABCBDAB,字串BCBA和BDAB都是是它們的最長公用子序列,則輸出它們的長度4,並列印任意一個子序列。分析:求最長公用子序列(Longest Common Subsequence,
Time of Update: 2017-01-18
最大K乘積問題設I是一個n位十進位整數。如果將I劃分為k段,則可得到k個整數。這k個整數的乘積稱為I的一個k乘積。試設計一個演算法,對於給定的I和k,求出I的最大k乘積。編程任務:對於給定的I 和k,編程計算I 的最大k 乘積。需求輸入:輸入的第1 行中有2個正整數n和k。正整數n是序列的長度;正整數k是分割的段數。接下來的一行中是一個n位十進位整數。(n<=10) 需求輸出:計算出的最大k乘積。解題思路:DP 設w(h,k) 表示: