Time of Update: 2018-12-04
最近關注一下資料演算法面試的時候常考的題目,複習一下常用排序。以下是堆排序,常用在topK問題求解中。// Heap sort;void MaxHeapify(int * src, int pos,int count){int l = (pos<<1)+1;int r = l+1;int maxpos = pos;if (l<count && src[l]>src[pos]){maxpos = l;}if (r<count &&
Time of Update: 2018-12-04
運用ACE_Thread_Manager類建立線程 建立線程需要要解決兩個問題,一是調用線程函數,二是提供一個途徑讓線程能夠訪問到外部傳遞過來的參數。下面的代碼示範了基本的用法:#include <stdexcept>#include "ace/ACE.h"#include "ace/Log_Msg.h"#include "ace/Thread_Manager.h"#include <map>#include <string>#include
Time of Update: 2018-12-04
因為無聊,回想上學時的一些數學分析的題目,實現一個sin玩玩。//sin x≈x/1!-x^3/3!+x^5/5!-...(-1)^(n-1) x^(2n-1)/(2n-1)!double mysin(double x){int n = 15;//迭代15次,可以根據需要修改迭代次數或改成參數傳進來double x = 3.1415926*30.0/180;//double s = 0.0;double y = x;int flag = -1;int i = 1;int mul = 1;n *=
Time of Update: 2018-12-04
之前看到一道題目,給出一個IP鏈,如果某個指標指向之前已經指向過的地址,則需要找出這類帶環的鏈,並找出環的入口。以下用C實現代碼:struct Node{Node * _next;int _value;};Node* insert(Node * head,Node * n){assert(head);if (n){n->_next = head->_next;head->_next = n;head->_value++;}return n;}Node *
Time of Update: 2018-12-04
又周末,無聊又寫寫快排~void QSort(int array[],int p,int q){int begin = p;int end = q;int mid_value =array[begin];if (begin>=end){return;}while (begin<end){while((begin<end)&(array[end]>=mid_value)){end--;}if ((begin<end)){array[begin] =
Time of Update: 2018-12-04
在做hashmap測試資料產生的時候,留下了一個問題——隨機數的產生。關於真隨機數的產生,都需要硬體裝置運行中採樣的資料。是否真的做到隨機,就要看採樣的結果是否符合均勻分布。可以參考一下這篇文章 http://www.cnblogs.com/hehehu/archive/2005/08/23/221125.html 在這裡討論的是隨機排列數組的問題,問題引入: 給定正數組A[n],求產生 一個隨機序列。如給定A[n] =
Time of Update: 2018-12-04
簡體中文版還沒有出來,於是試玩了盜版星際2,劇情不錯,最後漫天的霞光下,英雄抱著美女看天上的飛蟲。好浪漫啊。不過一玩對戰就覺得有問題,一些常識問題:1.所有飛行器都在同一高度2.衝鋒槍可以打到巨型戰艦3.有些兵種只能對空,有些只能對地。不會吧,就算給你一把手槍,也沒有這個限制,頂多是打的中打不中的問題。這樣太胡扯了。4.劇情篇裡面打火車那一節,我方武器因為能夠邊移動邊開火,所以打火車很容易。可是,難道我們現在弄個人站在牛車上都能夠扔石頭,未來的科技居然只有少數武器才能做到這點。5.核彈居然還要特
Time of Update: 2018-12-04
最近在看病毒相關內容,看著大部分知識都知道,不知道用起來行不行。下午正好有人問怎麼注入線程,在公司用《windows核心編程》的注入DLL程式修改了一下,實現了遠程注入DLL調用函數。剛才回來,覺得照著別人的程式改,總還是學不到家,自己花了兩個小時寫了一個。能注入到其他進程中,執行彈出MessageBox框。當然,能注入去彈出這個框,就能幹很多壞事了,看你想幹什麼了。把代碼貼上來,也不改了,反正能看懂。有幾個細節可能會忽略: 1.
Time of Update: 2018-12-04
下載原始碼下載原始碼到/usr/local/src:wget -c ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.3.tar.gztar -zxvf ACE-6.0.3.tar.gzsudo chmod -R 777 ./ACE_wrappers/安裝需要的庫sudo apt-get install build-essentialsudo apt-get install libssl-devln -s /usr/lib/
Time of Update: 2018-12-04
對於網路方面的知識需要加強。 1. 取得本地機器名和IP:string tmpLocalIP ; char tmpName[256];if(gethostname(tmpName,sizeof(tmpName))!=0) { ATLTRACE(_T("gethostbyname() error!!\n")); log_.write(L"can't get hostname ." );goto EXIT_FUN; }hostent *tmpPhostent
Time of Update: 2018-12-04
今天帶老婆一起去報名揚州大學田金龍老師的太極拳學習班。挺有意思,把今天所學做個筆記。 太極拳的起勢用來做什嗎?
Time of Update: 2018-12-04
參考了一下第四版的windows internals書,看到上面寫的object header結構有些不同,查了些資料,發現的確,微軟作了修改,以下是在win7下得到的結構。lkd> dt nt!_object_header +0x000 PointerCount : Int4B +0x004 HandleCount : Int4B +0x004 NextToFree : Ptr32 Void +0x008 Lock
Time of Update: 2018-12-04
單鞭 單鞭的發勁練習弓步,手掌撐住對方的胸口,先用僵勁頂住對方。沉身之後,後腿腳跟開始連續輕踩,重心開始前移,上身略微前傾。這是一個持續的發力過程,要做到快速輕微。腿部的發力,帶動身體,力量傳遞到手,形成共振。對方的身體感受一種電鑽式的力量進來。這個過程可以重複多次,每次都要還原後在進行。當一波力量到最後的時候,突然撤去力量,對方會情不自禁的往前沖。
Time of Update: 2018-12-04
該程式將示範如何將一個簡單結構序列化後發送到網路上,如何從網路上接收到資料後還原序列化回結構。 ACE的C++ WRAPPER FACADE層將網路通訊分成三種角色:串連者(ACE_SOCK_Connector)、等待者(ACE_SOCK_Acceptor)和傳輸者(ACE_SOCK_Stream)。建立串連
Time of Update: 2018-12-04
IANA(Internet Assigned Numbers Authority)把連接埠號碼分為三類:已知的, 登入的及動態和(或)專用連接埠.0-1023: 由IANA控制, 為已知服務所保留1024-49151: 由IANA列出的登入的連接埠,由普通使用者執行的普通使用者進程或程式可以使用這些連接埠.49152-65535:
Time of Update: 2018-12-04
記憶體對應檔多個作業系統平台都提供了記憶體對應檔,這是一個簡單的將資料結構儲存到檔案中的機制。同時由於32位作業系統的進程虛擬記憶體最大隻能4GB,用記憶體對應檔的方式就可以突破這個限制,可以用來開啟超過4GB的大檔案。而且,記憶體對應檔其實就是一種共用記憶體機制,進程間可以通過共用記憶體直接存取資料。ACE提供了ACE_MMAP_Memory_Pool類,該類代表了為記憶體對應檔分配記憶體的記憶體池。和ACE_Malloc模板類配合,我們就可以以平台無關的方式操縱記憶體對應檔了。比如:ACE
Time of Update: 2018-12-04
Time of Update: 2018-12-04
.Net中,記憶體回收行程負責回收你建立的參考型別的對象,但是回收時間並不能準確估計出來,所以這稱之為非確定銷毀。實值型別自動釋放,所以不在本文討論之中。 但是有些稀缺資源,比如檔案控制代碼、資料庫連接等,就需要儘快釋放。如何做到呢。最簡單的方法就是調用GC.Collect ()強迫記憶體回收行程工作。但是這種方法會降低效能,除非迫不得已。 那麼有沒有更好的辦法?“解構函式”“解構函式”與c++解構函式的區別 “解構函式”怎麼樣?比如下面的例子:
Time of Update: 2018-12-04
最近在使用ACE做網路編程工作,寫一些在工作中學到的小技巧與深得,循序漸進。1. 在ACE中使用new產生對象的時候,如果無法分配記憶體直接返回錯誤,最好使用ACE裡已經定義的宏ACE_NEW_RETURN來做記憶體配置的保護; 代碼在OS_Memory.h# define ACE_NEW_RETURN(POINTER,CONSTRUCTOR,RET_VAL) \ do { POINTER = new (ACE_nothrow) CONSTRUCTOR; \ if
Time of Update: 2018-12-04
我原來一直使用Emacs開發Linux下的C++程式,但是自從我新買了電腦(硬體夠快),我決定享受一下NetBeans帶來的強大功能。有人說用Java開發的IDE來開發C++很奇怪,不過對我這種C++,Java程式都經常寫的人,卻沒有這點門派之見。只要工具好用,不收費就可以。我真得覺得它比收費的VS.net要好。編譯安裝最新版本的ACE