Time of Update: 2018-12-05
1. 常用的元字元代碼 說明. 匹配除分行符號以外的任一字元\w 匹配字母或數字或底線或漢字\s 匹配任意的空白符\d 匹配數字\b 匹配單詞的開始或結束^ 匹配字串的開始$ 匹配字串的結束2. 常用的限定符 代碼 說明* 重複零次或更多次+ 重複一次或更多次? 重複零次或一次{n} 重複n次{n,}
Time of Update: 2018-12-05
#include <iostream>#include <boost/lexical_cast.hpp> int main(int argc, char *argv[], char *env[]){// 1. c++中string到int的轉換// 1.1 在標準庫裡面,使用atoi或者strtol{std::string text = "152";int number = std::atoi(text.c_str()); std::cout <<
Time of Update: 2018-12-05
boost庫中sleep有兩個方法:1. 這個方法只能線上程中用, 在主線程中用無效. 原型:void sleep(TimeDuration const& rel_time);void sleep(system_time const& abs_time);執行個體:boost::this_thread::sleep(boost::posix_time::seconds(2)); //
Time of Update: 2018-12-05
1. 概述線程就是,在同一程式同一時間內允許執行不同函數的離散處理隊列。 這使得一個長時間去進行某種特殊運算的函數在執行時不阻礙其他的函數變得十分重要。 線程實際上允許同時執行兩種函數,而這兩個函數不必相互等待。一旦一個應用程式啟動,它僅包含一個預設線程。 此線程執行main() 函數。 在main()中被調用的函數則按這個線程的上下文順序地執行。 這樣的程式稱為單線程程式。反之,那些建立新的線程的程式就是多線程程式。 他們不僅可以在同一時間執行多個函數,而且這在如今多核盛行的時代顯得尤為重要。
Time of Update: 2018-12-05
1. mutex對象類mutex類主要有兩種:獨佔式與共用式的互斥量。▲ 獨佔式互斥量:mutex: 獨佔式的互斥量,是最簡單最常用的一種互斥量類型try_mutex: 它是mutex的同義字,為了與相容以前的版本而提供timed_mutex: 它也是獨佔式的互斥量,但提供逾時鎖定功能▲ 遞迴式互斥量:recursive_mutex: 遞迴式互斥量,可以多次鎖定,相應地也要多次解鎖recursive_try_mutex: 它是recursive_mutex
Time of Update: 2018-12-05
boost::lock_guard可以說是一種比boost::unique_lock輕量級的lock, 簡單一些情境可以用它就行了。看看它的原始碼也很簡單:template<typename Mutex>class lock_guard{private: Mutex& m; explicit lock_guard(lock_guard&); lock_guard& operator=(lock_guard&);public:
Time of Update: 2018-12-05
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ComCtrls;typeTForm1 = class(TForm)Button1: TButton;Edit1: TEdit;Edit2: TEdit;procedure Button1Click(Sender: TObject);private{
Time of Update: 2018-12-05
void test_mt19937(){// 以時間為種子建立一個隨機數發生器boost::mt19937 rng(time(0));for (int i = 0; i < 100; ++i){std::cout << rng() << std::endl;}}void test_rand48(){boost::rand48 rng;for (int i = 0; i < 10; ++i){std::cout << rng() * 1.0 /
Time of Update: 2018-12-05
int f(int a, int b){return a + b;}int g(int a, int b, int c){return a + b + c;}// 函數指標定義typedef int (*f_type) (int, int);typedef int (*g_type) (int, int, int);// 使用struct僅僅是為了方便, 不必寫出publicstruct demo{int f(int a, int b){return a + b;}};//
Time of Update: 2018-12-05
*.pas 源碼(可隨意修改)*.dcu 編譯後單元(不可修改,且版本間不相容)*.res 資源檔(不可缺少)*.rc 用來建立.res檔案*.dcp and *.bpl 設計運行包*.dcr 控制項表徵圖*.dpk 控制項包工程檔案*.dfm 表單檔案*.dpr 工程主檔案 .cfg根據dof檔案產生的編譯器和連接器的命令列參數。.dof(Delphi
Time of Update: 2018-12-05
package com.fsti.math;public class MathDemo {public int add(int a, int b) {return a + b;}public int div(int a, int b) {if (b == 0) {throw new ArithmeticException("除數不能為0!");}return a / b;}}package com.fsti.math;import static
Time of Update: 2018-12-05
標準庫的string類提供了3個成員函數來從一個string得到c類型的字元數組:c_str()、data()、copy(p,n)。1. c_str():產生一個const char*指標,指向以Null 字元終止的數組。註:①這個數組的資料是臨時的,當有一個改變這些資料的成員函數被調用後,其中的資料就會失效。因此要麼現用先轉換,要麼把它的資料複製到使用者自己可以管理的記憶體中。注意。看下例:const char* c;std::string s = "1234";c =
Time of Update: 2018-12-05
最近我正在研究ActiveX技術。我使用Delphi 7建立了一個具有ActiveForm的ActiveX控制項應用程式。這個控制項產生一個.OCX檔案。現在,我需要把這個控制項部署在伺服器端,在使用者瀏覽網頁並選擇安裝這個控制項的時候,使用者的IE才會下載、安裝並顯示這個控制項。 但是我的控制項必須作數位簽章以後,IE才會下載安裝。問題是如何給ActiveX控制項作數位簽章呢?現將具體步驟與大家分享。 首先我需要一套做數位簽章的工具。如果你沒有,可以到以下地址下載:http://
Time of Update: 2018-12-05
在Win7系統中雖然內建了離開模式,但預設情況下並沒有啟用,啟用方法如下: 按Win+R,輸入“regedit”並斷行符號,在開啟的登錄編輯程式中依次展開到[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/SessionManager/Power],子項,在右側建立Dword
Time of Update: 2018-12-05
針對 H.264,這裡有一些常用的碼率方案: 畫面尺寸 1920 x 1080 (真正高清),選擇碼率為7,000-8,000 Kbps。 畫面尺寸 1280 x 720 (通用高清),選擇碼率為5,000-6,000 Kbps。 畫面尺寸 640 x 480 (標清),選擇碼率為1,000-2,000 Kbps。 畫面尺寸 320 x 240 (網路傳輸),選擇碼率為300-500 Kbps。 畫面尺寸 176 x 144 (3G), 10-15 fps的內容選擇碼率為50-60
Time of Update: 2018-12-05
VNC使用遠程幀緩衝協議(VFB,remote framebuffer)來實現桌面共用和遠端控制。一般包括VNC Client和VNC Server兩部分,Server預設使用5500連接埠監聽,VNC中不同的案頭(比如:0 to :3)使用不同的連接埠(比如5900到5903)。如果你在A上使用VNC訪問B,那麼VNC將把器A上的鍵盤滑鼠操作傳輸給器B,而B則把需要顯示的幀傳輸給A,這就是VNC的原理。VNC Client在串連VNC
Time of Update: 2018-12-05
tcp::resolver一般和tcp::resolver::query結合用,通過query這個詞顧名思義就知道它是用來查詢socket的相應資訊,一般而言我們關心socket的東東有address,port而已,通過tcp::resolver很容易實現設定和查詢,它通過query把字串格式的ip如192.168.0.200或主機名稱http://localhost,連接埠“8080”等轉化成socket內部表示格式,這樣我們應用的時候可以直接使用字串的形式,而且不用再擔心socket的位元組
Time of Update: 2018-12-05
shared_from_this()在一個類中需要傳遞類對象本身shared_ptr的地方使用shared_from_this函數來獲得指向自身的shared_ptr,它是enable_shared_from_this<T>的成員函數,返回shared_ptr<T>。首先需要注意的是:這個函數僅在shared_ptr<T>的建構函式被調用之後才能使用。原因是enable_shared_from_this::weak_ptr並不在enable_shared_fr
Time of Update: 2018-12-05
如果一個線程中可能在執行中需要再次獲得鎖的情況(例子:test_thread_deadlock),按常規的做法會出現死結。此時就需要使用遞迴式互斥量boost::recursive_mutex,例子(test_thread_recursivelock)來避免這個問題。boost::recursive_mutex不會產生上述的死結問題,只是是增加鎖的計數,但必須確保你unlock和lock的次數相同,其他線程才可能鎖這個mutex。namespace {boost::mutex g_mutex;
Time of Update: 2018-12-05
namespace{// strand提供串列執行, 能夠保證安全執行緒, 同時被post或dispatch的方法, 不會被並發的執行. // io_service不能保證安全執行緒boost::asio::io_service m_service;boost::asio::strand m_strand(m_service);boost::mutex m_mutex;void print(int id){// boost::mutex::scoped_lock