Time of Update: 2018-12-06
1. overload 僅僅傳回值類型不同的函數不能被重載.2. 所謂私人,是指該成員只能被類本身的方法訪問----即使是這個類的對象也不能直接存取.3. 類的對象所佔用的空間是其成員變數所用記憶體的總和(可sizeof求證),對象指標指向其首個成員變數地址.對象的函數不佔用對象的記憶體空間(即使函數中有局部變數)4. const關鍵字的主要作用是利用編譯器進行排錯.和限制對成員的改變.表現在以下方面:(1)const成員函數:const位於形參括弧之後,分號之前.該函數不能修改成員變數.(2
Time of Update: 2018-12-06
今天寫了段程式,幫著同學處理一個dat檔案中的資料。用fopen,fscanf讀取檔案中的數字總是沒有結果。後來發現問題出現在"wt+"上,每次用這種mode開啟都會把原來的檔案清空。後來直接用"r",這個問題就解決了。哎,看來一年不編程式,忘的東西不少了。百度了一下各種mode: mode有下列幾種形態字串: r 開啟唯讀檔案,該檔案必須存在。 r+ 開啟可讀寫的檔案,該檔案必須存在。 rb+ 讀寫開啟一個二進位檔案,只允許讀寫資料。 rt+ 讀寫開啟一個文字檔,允許讀和寫。
Time of Update: 2018-12-06
今天做搜尋的acm題,有一步需要用到計算100000以內的素數,並儲存在一個數組內。直接算逾時,講義中用其他約束條件將範圍變為了10000才打到了時間的要求。在網上搜C++素數計算,發現了一段經典代碼。實驗了一下,速度非凡,在我這1G記憶體的老式筆記本上求出1億以內的素數並儲存到制定數組中只用了8.531s。計算10萬以內的只需1ms。代碼貼在下面 int count=0; bool *temp=new bool[data]; for(int i=0;i!=data;++i)
Time of Update: 2018-12-06
學習C++ -> 迴圈語句與迴圈控制 一、迴圈語句 當程式中需要不斷的重複執行某個動作, 例如: 重複輸出1000行"Hello,world!", 如果自己寫一千行cout<<"Hello,world!";, 就算複製粘貼也得一會時間, 這時迴圈語句就能派上大用場了。 1. for迴圈 for迴圈使用的基本形式: for( 初始設定式; 條件運算式; 增量運算式 ) 語句; //迴圈體 初始化是一個指派陳述式,
Time of Update: 2018-12-06
學習C++ -> 一維數組 一、一維數組 數組是一些按序排列的同質資料元素的集合, 數組的用途可以暫時理解為用來一次定義大量變數, 例如我們要存放100個int型的整數, 如果我們一個個聲明就需要定義100個int型的變數, 例如: int a1, b1, c1, d1, e1, f1, g1, ... ; 如此, 這樣是十分複雜且不符合實際的, 這時我們就需要藉助一維數組來幫忙, 定義一個能夠放下100個int型整數的數組: int a[100] ;
Time of Update: 2018-12-06
先說一下C語言中fseek()的功能:函數原型:int fseek(FILE *fp, LONG offset, int origin)參數含義:fp 檔案指標 offset 相對於origin規定的位移位置量 origin 指標移動的起始位置,可設定為以下三種情況: SEEK_SET 檔案開始位置 SEEK_CUR 檔案當前位置 SEEK_END
Time of Update: 2018-12-06
http://blog.pfan.cn/colormoon C/C++學習基礎總結 http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html 深入理解JavaScript系列 非常有用http://www.codinglabs.org/ 一淘資料部,非常重要 http://www.cnblogs.com/huangxincheng/
Time of Update: 2018-12-06
C++ 11中的Lambda運算式用於定義並建立匿名的函數對象,以簡化編程工作。Lambda的文法形式如下: [函數對象參數] (操作符重載函數參數) mutable或exception聲明 ->傳回值類型 {函數體} 可以看到,Lambda主要分為五個部分:[函數對象參數]、(操作符重載函數參數)、mutable或exception聲明、->傳回值類型、{函數體}。下面分別進行介紹。
Time of Update: 2018-12-06
C++ 11中引入的一個非常重要的概念就是右值引用。理解右值引用是學習“移動語意”(move semantics)的基礎。而要理解右值引用,就必須先區分左值與右值。
Time of Update: 2018-12-06
代碼風格指南 http://code.google.com/p/google-styleguide/通過這個瞭解代碼規範和編寫新代碼Open Source Projects Released By
Time of Update: 2018-12-06
【原】C++ 11右值引用【原】C++ 11 Lambda運算式【原】C++ 11 auto & decltype【原】C++ 11完美轉寄【原】C++ 11文法甜點1【原】C++ 11文法甜點2【原】C++ 11 tuple & 可變參數模板【原】C++ 11 function【原】C++ 11 bind【原】C++ 11智能指標之shared_ptr【原】C++ 11智能指標之unique_ptr【原】C++ 11智能指標之week_ptr【原】C++ 11並發
Time of Update: 2018-12-06
介紹: 設計記憶體池的目標是為了保證伺服器長時間高效的運行,通過對申請空間小而申請頻繁的對象進行有效管理,減少記憶體片段的產生,合理分配系統管理使用者記憶體,從而減少系統中出現有效空間足夠,而無法分配大塊連續記憶體的情況。目標: 此次設計記憶體池的基本目標,需要滿足執行緒安全性(多線程),適量的記憶體泄露越界檢查,運行效率不太低於malloc/free方式,實現對4-128位元組範圍內的記憶體空間申請的記憶體池管理(非單一固定大小對象管理的記憶體池)。記憶體池技術設計與實現
Time of Update: 2018-12-06
c++程式的記憶體格局通常分為四個區:全域資料區;代碼區;棧區;堆區(即自由儲存區)。 全域變數、待用資料、常量存放在全域資料區,所有類成員函數和非成員函數代碼存放在代碼區,為運行函數而分配的局部變數、函數參數、返回地址等存放在棧區,餘下的空間都被稱為堆區。 new和delete,malloc和free,都從堆中分配和釋放記憶體塊,但在具體操作上兩者有很大的區別。
Time of Update: 2018-12-06
接著上一篇的《c語言:計算輸入字元個數》,這一篇來寫《c語言:計算輸入字元各個字母出現的頻率思路》同樣也是《c語言程式設計第二版》這本書上面:2.編寫一個程式,計算輸入字元各個字母出現的頻率。 最終結果為:剛剛接手題目的時候,我想得很複雜,因為26個字母中有大小寫嘛,小寫a~z,大寫A~Z但是,無論是大寫還是小寫,字母都只有26個,在此,當輸入大寫字母的時候,我們就將其轉換為小寫就ok啦大寫字母轉換為小寫字母,有個很方便的函數tolow(),在ctype.h中,詳情文章末。看過前一篇文章《c語言
Time of Update: 2018-12-06
《c語言程式設計 第二版》上的題目1.編寫一個將輸入複製到輸出的程式,並將其中的多個空格用一個空格代替?直接看代碼:僅供參考,代碼來源於互連網!!!代碼一: 1 #include "stdio.h" 2 3 main() 4 { 5 int c; 6 int i; 7 int n = 0; 8 9 while ( (c = getchar()) != EOF)10 {11 if ( c != '' )12 {13
Time of Update: 2018-12-06
近日再看《c語言程式設計第二版》,做了一下上面的習題。1.編寫程式,列印出輸入中單詞長度的長條圖。先來說第一題,沒輸入一個一個單詞後,你就要出入一個空格,接著輸入一個單詞,在輸入一個空格,依此迴圈輸入。當一個句子輸入完了,就需要隔行另起一段。例:i am a studen第1個單詞長度為1第2個單詞長度為2第3個單詞長度為1第4個單詞長度為6但是,當每輸入完一個單詞的時候需要用空格隔開,然後在輸入,編寫的過程,要判斷,詳情看代碼。通過維基百科查詢,目前最長單詞的長度為30,有個很長的大概是225
Time of Update: 2018-12-06
一、提前的話 要說C語言和Linux的關係大家應該都不會陌生,Linux系統核心就是用C語言開發的,所以所有的Linux系統下面 都會有C的編譯調試工具,不過這些工具都是命令式的,正式開發的話會很不方便。Fedora在安裝的時候可以選擇安裝Fedora Eclipse,這個IDE很強大,C,C++,Java,Python等等都支援,而且編譯,調試和測試等功能也很完善。不過一般太強大的東西都有一個
Time of Update: 2018-12-06
初始化定義方式:string s1; //預設建構函式,s1是Null 字元串string s2(s1); //s2初始化為s1string s3("mengxm"); //s3初始化為一個字串字面值string s4(n,'m');
Time of Update: 2018-12-06
我們可以將vector看成是數組的升級,是廣義上的數組並且資料類型自己定義,數組元素個數不限vector的定義方式:vector<類型> 變數名初始化方式:vector<T> v1 //預設建構函式v1為空白vector<T> v2(v1) //v2成為v1的副本vector<T> v3(n,i) //v3含有n個i元素vector<T> v4(n)
Time of Update: 2018-12-06
在.net Framework中,System.Convert類中提供了較為全面的各種類型、數值之間的轉換功能。其中的兩個方法可以輕鬆的實現各種進位的數值間的轉換:Convert.ToInt32(string value, int fromBase):可以把不同進位數值的字串轉換為數字,其中fromBase參數為進位的格式,只能是2、8、10及16:如Convert.ToInt32(”0010”,2)執行的結果為2;Convert.ToString(int value, int toBase):