Time of Update: 2017-01-18
最近在編寫C++程式的過程中,需要使用matlab產生的.mat檔案,於是尋找了基本使用方法。 我的電腦環境是win7 64位系統,VS2010,matlab R2010b。 一、工程配置: 1.VC++目錄->包含目錄 添加: MATLAB\R2010b\extern\include MATLAB\R2010b\extern\include\win64 ->庫目錄 添加:
Time of Update: 2017-01-18
寫了一個比較粗糙的C語言程式碼數統計指令碼,目前還有些bug,而且效率也不高。指令碼主要就是去除大部分的注釋後統計行數,相當於做了一部分預先處理的工作。下面是代碼:#!/bin/bash filename=$1echo "`whoami`"if [ $# -lt 1 ];then echo "usage : ./scripts filename" exit -1fiif [ ! -f $filename ];then echo "$filename is not a file" exit
Time of Update: 2017-01-18
複製代碼 代碼如下:/* File name: bmpTest.c Author: WanChuan XianSheng Date: Oct 01, 2011 Description: Show all Info a bmp file has.
Time of Update: 2017-01-18
什麼是類型轉換? 類型轉換的含義是通過改變一個變數的類型為別的類型從而改變該變數的表示方式。為了類型轉換一個簡單對象為另一個對象你會使用傳統的類型轉換操作符。C與C++的類型轉換C中:複製代碼 代碼如下:(T)element 或者 T(element)c++中:複製代碼 代碼如下:reinterpret_cast<T*> (expression)dynamic_cast<T*>
Time of Update: 2017-01-18
首先是引用情形下的c++源碼:複製代碼 代碼如下:void add(int a, int b, int&c) { c = a + b;}int main() { int a = 1; int b = 2; int c = 0; add(a, b, c);}下面是main對應的彙編碼:複製代碼 代碼如下:;
Time of Update: 2017-01-18
下面從組合語言看其原理.下面是c++原始碼:複製代碼 代碼如下:void add() { static int i = 1; i++;}int main() { add();}下面是main對應的彙編碼複製代碼 代碼如下:; 5 : int main() { push
Time of Update: 2017-01-18
首先簡單說一下什麼是行壓縮圖,其實嚴格意義上應該是行壓縮矩陣。正常情況下,矩陣是用二維數組簡單儲存的,但是如果是疏鬆陣列,也就是零很多的時候,這樣比較浪費空間。所以就有各種節省空間的儲存方式,三元組儲存就是其中一種。什麼是三元組呢?一個三元組就是(row,col,value),這樣把所有不為零的值組成一個向量。這種儲存方式比二維數組節省了不少空間,當然還可以進一步節省,因為三元組裡面row或者col重複儲存了,一行或者一列存一次就行了,按這種思路走下去就是行壓縮儲存了。那具體什麼是行壓縮儲存呢?
Time of Update: 2017-01-18
在進行memcpy操作時,雖然是記憶體操作,但是仍然是耗一點點CPU的,今天測試了一下單線程中執行memcpy的效率,這個結果對於配置TCP epoll中的work thread數量有指導意義。如下基於8K的記憶體快執行memcpy, 1個線程大約1S能夠拷貝500M,如果伺服器頻寬或網卡到上限是1G,那麼網路io的work thread 開2個即可,考慮到訊息的解析損耗,3個線程足以抗住硬體的最高負載。在我到測試機器上到測試結果是:Intel(R) Xeon(R)
Time of Update: 2017-01-18
Lua 是一門輕巧、靈活、擴充性很強的指令碼語言,它可以很容易的嵌入到其他語言(C/C++)中使用,這主要得益於其提供了功能強大的 C API,這讓其跟 C/C++ 間的互調成為一件很輕鬆的事。Lua 調用 CLua 調用 C 函數,其實就是把 C 函數註冊到 Lua 中去,把 C 函數地址傳遞給 Lua 解譯器。這個傳遞是要遵循一個的協議的,即:複製代碼 代碼如下:typedef int (*lua_CFunction)(lua_State* L)Lua 和 C
Time of Update: 2017-01-18
C語言前置處理器執行宏替換、條件編譯和檔案包含。通常採用以“#”為行首的提示。下面是C語言預先處理的應用場合: 1.三字母詞(Trigraph Sequences) C來源程式的字元集被包含在7位的ASCII字元集中,但是它是ISO 646-1983 Invariant Code Set的超集。為了讓程式可以在縮減集(reduced set)中呈現出來,下面的三字母詞會被替換成相應的單字元.三字母詞單字元??=#??/\??'^??([??)]??!|??<{??>}??-~
Time of Update: 2017-01-18
首先,當考慮到記憶體分配和執行效能的時候,使用std::deque要比std::vector好。Deque總覽deque和vector一樣都是標準模板庫中的內容,deque是雙端隊列,在介面上和vector非常相似,在許多操作的地方可以直接替換。假如讀者已經能夠有效地使用vector容器,下面提供deque的成員函數和操作,進行對比參考。函數描述c.assign(beg,end)c.assign(n,elem) 將[beg; end)區間中的資料賦值給c。將n個elem的拷貝賦值給c。
Time of Update: 2017-01-18
區別C++中對於類來說,對於其中的成員,用點操作符.來獲得,而對於一個指向類對象的指標來說,則用箭頭操作符->調用該指標所指向對象的成員。當類定義->重載操作符後,則既可以用箭頭操作符,也可以用點操作符。重載->操作符重載箭頭操作符必須定義為類成員函數。沒有顯式形參(而且是類成員,唯一隱式形參是this)。->的右運算元不是運算式,而是對應類成員的一個標識符,由編譯器處理擷取成員工作。重載箭頭操作符必須返回指向類類型的指標,或者返回定義了自己的箭頭操作符的類類型對象。如果
Time of Update: 2017-01-18
整數轉換為字串:char *itoa( int value, char *string,int radix);小數轉換為字串:sprintf(串, 格式控制符列, 資料);字串轉小數:double atof(const char *nptr);字串轉整數:int atoi(const char *nptr);測試代碼:複製代碼 代碼如下:#include<stdio.h> #include<stdlib.h> int
Time of Update: 2017-01-18
我在《Linux 多線程服務端編程:使用 muduo C++ 網路程式庫》第 1.9 節“再論 shared_ptr 的安全執行緒”中寫道:(shared_ptr)的引用計數本身是安全且無鎖的,但對象的讀寫則不是,因為 shared_ptr 有兩個資料成員,讀寫操作不能原子化。根據文檔(http://www.boost.org/doc/libs/release/libs/smart_ptr/shared_ptr.htm#ThreadSafety), shared_ptr
Time of Update: 2017-01-18
儘管這個概念已經讓人說濫了 ,還是想簡單記錄一下, 以備以後查詢。複製代碼 代碼如下:#ifdef _DEBUG#define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)#else#define DEBUG_CLIENTBLOCK#endif#define _CRTDBG_MAP_ALLOC#include <crtdbg.h>#ifdef _DEBUG#define new DEBUG_
Time of Update: 2017-01-18
“一個真正的程式員是不用IDE(譯者註:整合式開發環境)的,他們都是用帶著某某外掛程式的文字編輯器來寫代碼。”我們總能在某些地方聽到此類觀點。然 而,儘管越來越多的人同意這樣的觀點,但是一個IDE仍然非常有用,它設定簡單,使用起來也很方便,因此不能比這樣更合適編寫一個項目了。所以鑒於這點, 在這裡我想給大家列一份在Linux平台上比較好的C/C++ IDE清單。為什麼特地說C/C++呢?因為C語言是我最喜歡的程式設計語言,而且我們總要找個切入點來開始。另外要注意的是,通常有很多種編寫C代碼的方
Time of Update: 2017-01-18
單體模式(Singleton)是經常為了保證應用程式操作某一全域對象,讓其保持一致而產生的對象,例如對檔案的讀寫操作的鎖定,資料庫操作的時候的交易回復,還有工作管理員操作,都是一單體模式讀取的。 建立一個單體模式類,必須符合三個條件: 1:私人建構函式(防止其他對象建立執行個體); 2:一個單體類型的私人變數; 3:靜態全域擷取介面
Time of Update: 2017-01-18
作為一個小型的資料存放區傳遞的工具——XML,大家肯定也不陌生,今天就關於XML的一些簡單操作做些總結。這些都是在控制台進行操作的·····1.建立XML1)建立普通XML static void Main(string[] args) { //通過代碼來建立XML文檔 //1、引用命名空間 //2、建立XML文檔對象 XmlDocument doc = new XmlDocument(); //3、建立第一個行描述資訊,並且添加到doc文檔中
Time of Update: 2017-01-18
最近研究C#相關的ORC技術,Image Recognition一般C和C++這種底層語言做的比較多,C#主要是依託一些封裝好的組件進行調用,這裡介紹三種身份證識別的方法。一:調用大公司API介面,百度、雲脈,文通科技都有相關的API介紹。二:調用影像處理類庫,EmguCV是OpenCV的一個跨平台的.Net封裝,該封裝也可以被編譯到Mono平台和允許在Windows、Mac OS、Android、iPhone、iPad等多個平台上運行三:調用Office2007
Time of Update: 2017-01-18
Regex(regular expression)描述了一種字串匹配的模式,可以用來檢查一個串是否含有某種子串、將匹配的子串做替換或者從某個串中取出符合某個條件的子串等。轉義匹配文法: “\”+實際字元 \ . * + ? | ( ) { }^ $ [ ] 例如:\\匹配字元“\” \n 匹配換行 \r 匹配斷行符號 \t 匹配水平定位字元 \v 匹配垂直定位字元 \f 匹配換頁 \nnn 匹配一個8進位ASCII \xnn 匹配一個16進位ASCII \unnnn