原创 Android動態申請權限

權限 爲了系統的安全性 android限制了一些比較敏感的操作 比如撥打電話、讀寫外部磁盤等 在AndroidManifest.xml中 應用會聲明用到的權限 但是在Android6.0以後 想要獲取到權限 還需要在系統設置中配

原创 插入排序算法

插入排序 插入排序向一個有序的數據隊列中插入一個數 要求插入後數據序列任然有序. 排序思想 將一個待排序的數字 按順序從後往前插入已排序的隊列中. 和撲克牌的插牌過程是一致的: 左手牌是有序牌堆 右手取牌插入左手牌中 並維持左手牌

原创 Object-C調用類內方法

指向自身的指針 C++類存在指向自身的指針this 以及指向基類的指針super(僅VC++中支持) OC通用有指向自身的指針self 以及指向基類的指針super 調用類內方法 寫法爲 [self call]; 調用類內的ca

原创 Git添加空目錄

Git add 空目錄 提交工程時需要爲Cmake保留一個空的build目錄 用於構建編譯工程. Git默認忽略空目錄 所以直接 git add build不會生效 這裏利用一個小技巧: 1 .開頭的文件在linux下被視爲隱

原创 C++前向聲明(解決類的互相包含問題)

類的互相包含 假設有兩個類 #include "B.h" class A { private: B *b; }; #include "A.h" class B { private: A *a; }; 編譯時

原创 C++11 : auto

auto auto 關鍵字的作用是自動類型推導 一般來說new一個類的代碼是這樣的: class test; test *testCtx = new test(); 指針的類型test必須被聲明爲new的類class的類型或是它的基類c

原创 mac ffmpeg ffplay工具安裝

ffmpeg & ffplay 通過brew快速安裝工具 brew install ffmpeg --with-sdl2 網上能找到的安裝命令 brew install ffmpeg --with-ffplay已經被棄用 通過此命令

原创 Git合併分支:解決衝突

Git合併分支 基於某個版本的代碼開發新特性 一般都是創建一個新分支進行特性的修改 git checkout -b feature_xxx git add xxx.xxx //做出修改 git commit -s -m "[feature

原创 OpenCL入門概念

OpenCL OpenCL將CPU和GPU組合利用起來做並構運算 GPU的優勢在於同時進行多個運算 for(int i = 0; i < 5; i++) //do some thing CPU執行以上循環的實現是串行運算5次 順序

原创 C/C++ #define的作用域

#define #define macro的作用域有點類似於C/C++全局靜態變量 編譯器處理宏的時機是預處理階段 編譯器按文本順序處理 遇到宏時就定義一個宏變量 假設這種情況 void test() { #define MACRO

原创 cmake跨平臺工程應用

cmake跨平臺 C/C++項目可能需要支持的系統:iOS Android Linux Windows 使用場景:某個C/C++的功能庫,需要能夠在不同平臺的項目中應用。 C/C++功能庫需要能方便的生成多個平臺下的庫 一

原创 C/C++初始化和去初始化函數

init/deinit 初始化/去初始化函數根據作用域可以分爲幾種不同的應用情形 1. 全局初始化/去初始化 這一次運行程序只做這一次初始化/去初始化 2. 模塊初始化/去初始化 每次加載/卸載這個模塊都調用一次初始

原创 python引用另一個py的函數

引用test.py的函數testa from test import testa testa() 或者 import test test.testa()

原创 iOS ViewController跳轉和返回

視圖控制器 iOS和android的視圖控制器的邏輯類似 應用程序用一個棧來管理視圖 跳轉到下一個視圖 let nextView = CameraViewControll() self.present(nextView, animated

原创 git忽略除指定文件/指定後綴名文件外的文件

.gitignore 忽略指定文件外的文件 舉例 忽略當前src目錄下除了a.cpp以外的文件 src/!a.cpp 忽略指定後綴名文件外的文件 舉例 忽略當前src目錄下除了cpp以外的文件 src/*[!cpp] 提交.gitign