Time of Update: 2018-12-04
其 實剛開始編程的時候,我是絲毫不重視編譯速度之類的問題的,原因很簡單,因為那時我用BASICA。後來一直用到C++ Builder,儘管Borland的廣告無時無刻不在吹噓其編譯速度,我卻從沒有對這個問題上心過,因為心雷根本沒有“編譯速度慢”這種概念。沒有壞, 哪來好?所謂矛盾的對立統一。遇到的第一個“慢”的編譯器也許是javac,但因為Java的特殊性,也就容忍了。真正接觸到世間的“惡勢力”,還要算是
Time of Update: 2018-12-04
我們平時寫一個模板類,聲明大概如下 template <typename T>class TaskManager{ vector<T> tasks; void ParseEveryTask() { vector<T>::iterator it = tasks.begin(); while ( it!=tasks.end() ) { it->parse();//注意,T必須有parse方法 ++ it; }
Time of Update: 2018-12-04
& 按位與| 按位或^ 按位異或1. 按位與運算 按位與運算子"&"是雙目運算子。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 ,否則為0。參與運算的數以補碼方式出現。例如:9&5可寫算式如下: 00001001 (9的二進位補碼)&00000101 (5的二進位補碼) 00000001 (1的二進位補碼)可見9&5=1。 按位與運算通常用來對某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位,
Time of Update: 2018-12-04
CH11. Ctrl +P,Ctrl+N可以瀏覽以前的命令並編輯,斷行符號鍵則是重複上一次的命令;2.版本6.1以後,有TERMINAL USER INTERFACE模式提供了基於圖形介面和文本介面的折中;為了以TUI模式運行gdb,需要指定-tui選項;或者在調試時輸入CTRL+X+A按鍵組合;3.在run後可以為程式添加參數;例如 r 6 5,
Time of Update: 2018-12-04
1.現象:程式中調用DLL中的某個函數f,但是斷點跟蹤,卻調用了函數g而不是f經調試,在call eax這條彙編語句中,查出函數地址就是g的地址;而f和g的地址只差4個位元組;於是檢查DLL標頭檔,找出了原因:dll和h檔案不匹配 2.現象:某個對象內有一個map成員,後來在某個地方遍曆該map時拋出了異常。
Time of Update: 2018-12-04
1. 對這個SLAB記憶體池實在沒什麼好說的,比較直白。簡單介紹一下各個參數吧。 2. setting的與SLAB相關的參數 chunk_size:這是SLAB所儲存的最小對象大小,包括sizeof(item) + key + value。 item_size_max:這是SLAB所儲存的最大對象大小。預設是1MB。factor:預設係數1.25.
Time of Update: 2018-12-04
LUA生來是與遊戲相關的;自從魔獸將它發揚光大之後,越來越多的遊戲公司使用它。遊戲邏輯中與其密切相關的是訪問NPC部分,彈出一個交易框、打造框、任務對話方塊等等,這些基本都是由LUA實現;本文我想就自己最近的一點兒體會,寫下關於遊戲任務的lua實現; 去年12月份,新遊戲項目成立,分配給我的第一個任務就是編遊戲任務;當時我還不知lua為何物,先花了一天的時間基本熟悉了lua文法(主要是關於table結構),C和lua的相互調用介面;然後摸索著上路了。 我個人比較喜歡自頂向下的學習方法,所以在這裡
Time of Update: 2018-12-04
#include <iostream>#include <cstdlib>#include <ctime>using namespace std;// 小根堆template < typename T, int N = 10 >class PriQueue{T * queue;int cnt;public:PriQueue() : queue ( NULL ), cnt(0){queue = new
Time of Update: 2018-12-04
1. 最初看見assoc.c檔案,發現了兩個雜湊表primary_hashtable和old_hashtable,還以為是採用了傳說中的perfect
Time of Update: 2018-12-04
BOOST 的EPOLL封裝,採用了所謂的領導者追隨者模式。我們知道EPOLL_WAIT是不能多線程調用的;ASIO為了在LINUX下類比PROACTOR模式,用應用程式層的資料結構模仿了WINDOWS系統給IOCP實現的完成包隊列,以及IO請求包;為了類比IOCP多個工作者線程調用GETQUEUEDCOMPLETEDSTATUS,由於無法並發EPOLL_WAIT,採用了領導追隨模式,做了個大概的類比。怎麼給人的感覺是為了PROACTOR而PROACTOR呢?本身LINUX
Time of Update: 2018-12-04
假如有一條從A到B得TCP串連;此時B的接收緩衝區中有資料還沒讀取;假如這個時候B調用CLOSE,那麼不會引起4次握手中斷連線;而是直接發送RST;這樣A端的recv返回一個錯誤(-1);用Stevens的話說,這是異常終止串連; 而在close之前,先shutdown(fd,
Time of Update: 2018-12-04
名字空間是C++的一個特性,它在大型工程裡能夠為名字衝突提供解決方案,然而很多程式員都忽視了它的使用。這裡用幾個例子說明以下它的一些用法。1. using declarations 它給名字空間中聲明的東西提供一個局部別名; namespace A{ int f(int); int i;} //注意,這裡不需分號using A::f; //將A裡的f函數引入;int f(int); //全域函數int main(){ f(1); //二義性錯誤! int i; //定義局部變數
Time of Update: 2018-12-04
很早就已經是CSDN的會員了,但是沒有寫過部落格,看過《為什麼你應該(從現在開始)寫部落格》(原文連結:http://blog.csdn.net/pongba/archive/2009/02/17/3896311.aspx)後,一直希望過來安家,CSDN技術研究氛圍很好,希望多多交流。最近一直在做機器視覺方面OpenCV的手勢識別項目研究,具體技術方面的問題再做討論咯。用此部落格記載一下自己的學習進展和心得,“不積跬步,無以至千裡”。加油!微軟的Kinect,看看大家會不會有興趣,或者有什麼
Time of Update: 2018-12-04
epoll ET mode with tcp nonblocking socket(linux kernel 2.6.18)[b]現假設A, B建立了tcp串連,且A可寫[/b]1) 2.6.18並未實現真正意義上的 edge triggered, 事件會報多次,比如socket可寫,這時tcp接收到有5bytes,觸發EPOLLIN | EPOLLOUT,不管應用程式層是否read()掉這5bytes,然後又接收到10bytes又會觸發EPOLLIN |
Time of Update: 2018-12-04
1、首先區別3個基本的概念(組件、COM和組件對象)COM組件(Component)是按照COM規範設計的一種軟體組件,用它們可以組成大規模的應用軟體;COM(元件物件模型)是關於如何建立組件及如何通過組件建立應用程式的一個規範;組件對象:一般情況下組件是用類實現的,那麼這個類得對象就叫組件對象。 現在好像都稱為COM組件2、COM組件介面、作用從客戶的角度來看,介面就是組件暴露在外部,從而使客戶可以訪問的方法;從組件的角度來看,介面是一組功能相關的函數的集合,或者說,介面是對組件所能夠對外進行
Time of Update: 2018-12-04
剛剛簡單看了一下mongos的資料庫模組。它沒有提供一個單獨的服務進程來與資料庫互動,而是在每個需要與資料庫互動的服務進程內,對每個需要訪問的資料庫建立一條串連,並隨之啟一個非同步查詢線程(不知這樣描述是否準確,大概就是說,資料庫語句不是立即執行而是放入一個隊列,該線程會從這個隊列裡取,執行真正的查詢。當然,這類查詢是無傳回值的,決不會是select語句) 1.
Time of Update: 2018-12-04
今天看武漢中地數位的支援人員崗筆試試題,其中有一道題(GIS資料的屬性包括___ ____),就是自己專業的知識,但是自己卻說不上來,查閱資料總結如下。GIS資料包括空間資料和屬性資料。空間資料主要描述空間物體的位置資訊,通常以記錄目標的座標為主;屬性資料則描述與這些空間資料相關聯的屬性,可分為定性和定量兩種,定性屬性用來描述空間目標所屬哪一類,如將目標定義歸類為河流、道路等,而定量屬性則定義空間目標的數量特徵,如山的高程、河流的寬度等。
Time of Update: 2018-12-04
C programmers have often taken volatile to mean that the variable could bechanged outside of the current thread of execution; as a result, they aresometimes tempted to use it in kernel code when shared data structures arebeing used. In other words,
Time of Update: 2018-12-04
在asio中有這麼一段代碼template <typename Stream>char is_read_buffered_helper(buffered_stream<Stream>* s);template <typename Stream>char is_read_buffered_helper(buffered_read_stream<Stream>* s);struct is_read_buffered_big_type { char
Time of Update: 2018-12-04
以前老師講Win32自己一直不懂到底是什麼意思,今天看到權且記下,作為標記和複習之用:用於16位版本Windows的API(Windows 1.0到Windows 3.1)現在稱作Win16。用於32位版本Windows的API(Windows 95、Windows 98和所有版本的Windows NT)現在稱作Win32; 以前也不明白LP什麼意思,原來long