原创 矩陣模板,右元函數重載
1.矩陣元素類型,以及矩陣的寬高都聲明爲模板參數 2.雙元操作符一般都重載爲友元函數 cout << matrix :可以看成左操作符是輸出流對象,右操作符時矩陣對象 string < string :它的友元函數聲明爲
原创 二維數組的new 和 delete
int** matrix = new int* [n]; int i = 0; for(; i < n; i++) { matrix[i] = new in
原创 某個對象構造的時候講自己註冊到一個單例的管理者
我們常常會在某個對象構造的時候講自己註冊到一個單例的管理者上去,這是很常見的一種設計模式。 這個管理者可以對外提供一些訪問管理這些對象的方式,還要負責管理者銷燬的時候,釋放掉那些對象 比如cocos2d-x中的PoolManager和Au
原创 用最小堆解決一個實際問題
問題描述如下: 一個公司要給多個部門分配辦公室空間,總的空間是一定的,分配空間所需的時間正比於空間的大小 比如, 總的空間的大小是1000,需要花費1000個單位時間來劃分這些時間(不管是劃分成300+700,還是劃分爲500 + 5
原创 Java 異步同時寫多個文件,寫完之後通知子線程
思路: 是主線程和多個寫文件線程之間同步,每寫完一個文件計數加1,如果計數值等於當前寫文件個數的時候,表示文件已經全部寫完。此時通過條件變量通知在該條件變量等待的主線程。此時主線程被喚醒,
原创 Linux下動態鏈接庫的導出
如果要導出某個struct,class,function, 則把__attribute__((visibility("default"))) 放置在你希望導出的struct,class,function的聲明處,然後修改你的GCC構建參數
原创 LeetCode:Reverse Linked List II 解法
反轉鏈表的擴展,要求能理解本質,考慮邊界情況 class Solution { public: ListNode* reverseBetween(ListNode* head, int m, int n) {
原创 LeetCode Binary Tree Right Side View : 思想上的基於隊列的廣度優先遍歷,形式上的一個簡單變種
題目: Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see
原创 矩陣模板,右元函數重載<<操作符
1.矩陣元素類型,以及矩陣的寬高都聲明爲模板參數 2.雙元操作符一般都重載爲友元函數 cout << matrix :可以看成左操作符是輸出流對象,右操作符時矩陣對象 string < string :它的友元函數聲明爲
原创 動態規劃算法應用於一個實際問題
題目:一個城市,公交車每隔1km停一次,公交車票價格隨行駛里程1km到10km之間而各不相同,可以分段搭乘來降低到達目的地的費用 比如假設公交費用列表如下: Distance(km) 1 2 3 4 5 6 7 8
原创 LeetCode上的寫一個二叉查找樹的由小到大順序的迭代器
題目: Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the root node of a
原创 用CMake創建OpenGLES的測試工程
測試工程的目錄結構如下 +CMakeLists.txt | +--+ src/ | | | +---- XX.c | /---- CMakeLists.txt +--+ libcommon/ | | | +--- xxx.h |
原创 基於棧來實現二叉樹的先根遍歷
當年在淘寶最後一面的時候被問過這個問題,當時思路混亂,答的不好。 #include<iostream>#include<stack>using namespace std;struct Node{ Node(char ch)
原创 C++對象向基本類型轉換
類類型A向float類型轉換 struct A{ A(int v) { mValue = v; } operator float () { return mValue;
原创 利用OpenGL模板緩衝,從正方形中摳出一個圓形邊框
#include<GL/freeglut.h> #include<math.h> void init() { /* color buffer,stencil buffer清除色, 使能模板測試 */