原创 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