原创 基類指針轉換爲子類指針,子類指針轉換爲基類指針

#include<iostream> #include<typeinfo> using namespace std; class base { public: virtual void virtual_fun()

原创 第一章 引言--《設計模式-可複用面向對象軟件的基礎》Erich Gamma

第一章 引言 本章主要是讓我們大致明白設計模式是幹嘛用的,模式分類,設計模式如何解決設計問題以及幾種常見的面向對象設計中軟件的複用方法。 1.什麼是設計模式?     個人理解概括,設計模式是對一類問題的抽象,並描述了該類問題的解決方案。

原创 your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found

問題: ./build.sh -j2   後出現如下提示: -- Check for working CXX compiler: CMAKE_CXX_COMPILER-NOTFOUND CMake Error: your CXX

原创 boost:: scoped_ptr源碼剖析

/* E:\Program Files\CodeGear\RAD Studio\7.0\include\boost_1_35\boost/checked_delete.hpp 24: */ namespace boost {     t

原创 數據結構中常用排序算法

已經編譯通過 //快速排序 void RightQuickSort(int *array, int start, int end) { int i=start; int j=end; int key=array[start]; wh

原创 ubuntu安裝jdk7,安裝IntelliJ Idea

一:環境搭建安裝jdk ubuntu安裝jdk7 1、首先下載jdk-7u21-linux-i586.tar.gz 2、將jdk-7u21-linux-i586.tar.gz拷貝到/usr/lib/jvm/目錄下面,這裏如果沒有jvm文

原创 求數組中的逆序對(來源於劍指名企offer)

思路: 利用歸併排序的思想,一邊歸併排序,一邊求逆序對。時間複雜度爲O(n log n) 步驟:遞歸實現 (1)現將數組拆分成2兩部分,統計出子數組內部的逆序對left、right; (2)然後再統計出兩個相鄰子數組之間的逆序對coun

原创 第二章 實例研究:設計一個文檔編輯器--《設計模式-可複用面向對象軟件的基礎》Erich Gamma

作者小感: 設計模式這本書,對於我來說,初學者看起來比較懵懂,稍微有些枯燥。所以得耐着性子看。看完每一章節,就會有成就感,也確實能夠打心眼贊成這種設計模式。 第二章,是從設計一個文檔編輯器這個例子,告訴大家:設計模式在應用中的作用,以及

原创 迭代器模式--《設計模式-可複用面向對象軟件的基礎》Erich Gamma

迭代器模式 STL中使用了迭代器,本文一步一步設計迭代器並改進。 Iterator是對象行爲型模式。 目的:提供一種方法,順序訪問聚合對象中各個元素,而不暴露該聚合對象的內部細節表示。 思想:將遍歷機制和聚合對象相分離,從而可以定義不同

原创 bash: ./build.sh: Permission denied

原因:文件爲只讀,或者用戶沒有權限。 修改方法:      運行命令: chmod 777 build.sh

原创 關於Segmentation fault (core dumped)幾個簡單問題的整理

關於Segmentation fault (core dumped)幾個簡單問題的整理  有的程序可以通過編譯,但在運行時會出現Segment fault(段錯誤)。這通常都是指針錯誤引起的。但這不像編譯錯誤一樣會提示到文件一行,而是沒

原创 求第一個只出現一次的字符(來源於劍指名企offer)

char FirstRepeatChar(char *inputStr) { if(inputStr==NULL) return '\0';   int tableSize=256;

原创 shared_ptr解析

shared_ptr解析 《超越C++標準庫-Boost庫導論》 頭文件: "boost/shared_ptr.hpp" 幾乎所有稍微複雜點的程序都需要某種形式的引用計數智能指針。這些智能指針讓我們不再需要爲了管理被兩個或多個對象共享的對

原创 求兩個鏈表的第一個公共節點(來源於劍指名企offer)

分析:        只要兩個鏈表有公共節點,那麼從第一個公共節點開始,之後的所有節點都是重合的。兩個節點的拓撲結構類似與Y字形。對公共節點的理解很重要。 思路: (1)首先, 分別遍歷兩個鏈表,得到兩個鏈表的長度 shortLen,

原创 linux中客戶服務器通信程序(TCP)

客戶端程序client.c 客戶端向服務器發出鏈接請求,建立連接之後,從標準輸入讀取數據,併發送給服務器。 #include <sys/types.h> #include <sys/socket.h> #include <netinet/