原创 簡易實現auto_ptr智能指針

智能指針能夠自動釋放動態內存的指針。主要的機制就是用一個類來將指針包裹起來,然後在類的實例析構的時候自動釋放內存。 今天自己實現C++標準庫的傳統的auto_ptr智能指針。如果不是自己編寫的智能指針,運行時要加 -std=c++

原创 結合boost庫實現的定時任務類

結合boost庫實現的定時任務類 WorkEvent.h #pragma once #include <mutex> #include <condition_variable> namespace ASYN_WORK_NVR {

原创 簡易實現unique_ptr智能指針

c++11的unique_ptr智能指針: 一旦創建,就指向那塊內存,以後再也不能讓其它的智能指針指向同一塊內存。 這個指針實現比較簡單,只需定義一個類的實例時,自己類內部刪除拷貝構造函數和刪除賦值運算符重載函數就可以了。 #in

原创 簡易實現shared_ptr智能指針

shared_ptr智能指針與auto_ptr智能指針不同的是,拷貝構造或賦值後,原來的指針仍然能夠使用。 原因是這種指針用一個引用計數來計算有多少個指針指向同一個空間,拷貝構造和賦值,都會讓計數+1,智能指針析構的時候計數-1,

原创 H264和H265 RTP封包解包

學習H264和H265 RTP封包解包時瀏覽過的博客的鏈接如下: RTP RTP協議全解析 H264 H264基礎及RTP分包解包 H264 RTP封包原理 RTP H264注意點(FU-A分包方式說明) H265 H265

原创 linux和windows通用時間類

這個時間類主要是用來獲取系統毫秒時間、時區、當地時間,以及對傳入的時間的轉換,適用於linux和windows。 TimeUtility.h #pragma once #include <string> #pragma once

原创 linux和windows下動態鏈接庫調用類

LibSo.h #pragma once typedef void* HANDLE; typedef void* ProcAddr; #include <string> namespace COMMON { namespa

原创 定時任務類

結合boost庫實現的定時任務類 WorkEvent.h #pragma once #include <mutex> #include <condition_variable> namespace ASYN_WORK_NVR {

原创 Makefile模板之生成動態庫

選項說明: -Wall 選項 :可以打印出編譯時所有的錯誤或者警告信息。變量沒有初始化,類型不匹配,沒有使用的變量或者類型轉換錯誤等警告提示。 -fPIC 選項:適用於動態連接,作用於編譯階段,告訴編譯器產生與位置無關代碼(Pos

原创 自己寫onvif視頻模擬器時寫的Makefile

MODENAME = INFRTPServer CC = gcc CXX = g++ OUTPUT = ./ OBJ_MAIN = ../ BIN_PATH = $(OBJ_MAIN)bin/ LIB_PATH = $(

原创 linux 下單網卡批量添加多個IP地址腳本

linux所有網卡的配置文件都保存在 /etc/sysconfig/network-scripts 目錄中,一個網卡對應一個配置文件。只需複製一份,修改文件名,然後修改其中的DEVICE和IPADDR字段就可以。配置完成後重啓網卡

原创 《C++中文版Primer 第五版之C++11的新特性》

c++11新特性總結 1. long long 類型 c++11新增加了long long 類型,long long 在x86平臺下爲64位。 2. 列表初始化 在c++11新標準中,增加了使用列表初始化來初始化變量,即用花括

原创 無向圖鄰接表

#include <stdio.h> #include <stdlib.h> #define MAX_POINT_NUM 10 //最大頂點數 /* 圖存儲方法: 1.鄰接矩陣(有向圖) 2.鄰接表 3.多重鄰接表 3.十字

原创 boost庫的IO服務線程池封裝筆記

BoostAsioSocket.h #pragma once #include <string> #include <boost/asio.hpp> #include <boost/enable_shared_from_this.

原创 非遞歸實現樹的前序遍歷和中序遍歷

//這就要用棧來實現 #include <stdio.h> #include <stdlib.h> #include <assert.h> #define MAX_SIZE 100 //棧的最大容量 /* 訪問二叉樹三種方式: