原创 C/C++ Tips(1)

1、關於vector的內部實現          對於vector,任何插入刪除的操作都會使迭代器失效,所以要小心         vector內部實現其實就是一塊連續的內存,它和傳統的array不同的它可以擴容,不用考慮越界。    

原创 Practice on programming 學習筆記.

class 1 獲得命令行參數 int main(int argc, char *argv[]) { .... }argc 代表程序啓動時,命令行參數的個數。C/C++語言規定,可執行程序程序本身的文件名也是一個命令行參數,因此argc

原创 fread 相關

if( fread( pic->plane[0], 1, param->i_width * param->i_height, fyuv ) <= 0 || fread( pic->plane[1], 1, para

原创 POJ 1163 數字三角形

Tips 1、遞歸超時,所以選擇用一個數組保存遞歸的子狀態 2、動態規劃是由一組小狀態確定上一個階段的某一狀態。 3、可以用三角形的最後一行來保存狀態,因爲之前的狀態使用一次之後就不需要了,減少空間複雜度。 #include<iostr

原创 圖像處理--高斯濾波

部分內容整理自: http://blog.csdn.net/jianxiong8814/article/details/1562728 http://www.cnblogs.com/pegasus/archive/2011/05/20/2

原创 關於二叉樹

1、二叉樹的建立 #include<iostream> #include<stdlib.h> using namespace std; typedef struct BTNode{ char data; struct BTNode

原创 小頂堆實現求無序數組中的最大k個數

//建立含有n個元素的小頂堆 void MakeMinHeap(int a[], int n) { for (int i = n / 2 - 1; i >= 0; i--) MinHeapFixdo

原创 POJ 1222

熄燈問題 幾個TIPS 1、只要有第一行的初始狀態和第一行是否按燈的情況就能確定下面所有行的按燈情況。因爲上面的燈亮着,對應位置的下面的開關就必須點一下,反之則不能點。 2、將5*6 的矩陣擴充爲6*8的矩陣,使每個開關的情況變成一樣。

原创 對稱子串的最大長度

首先寫一個判斷子串是否對稱的函數 //判斷子串是否對稱 bool isSymmetrical(char *pbegin, char *pend) { if(!pbegin||!pend||pbegin>pend) retur

原创 關於堆棧

堆棧是一種後進先出的數據結構,當你從堆棧中取出一個元素的時候,你得到的是最後進入堆棧的那個元素。堆棧這種數據結構特別適用於那些由多層子任務構成的任務。 堆棧比較常見的用法有1)保存子例程中的返回地址,參數,局部變量。2)用編譯器分析語法時

原创 C/C++ Tips (2)

1、C++裏的鑽石結構       class A { };       class B : virtual public A  { };       class C : virtual public A { };       class

原创 編程範式學習筆記

#include<stdio.h> #include<stdlib.h> #include<string.h> void swap(void *vp1,void *vp2,int size) { char *buffer=(char

原创 各種排序的比較

1)插入排序     每次將一個待排序的數據元素,插入到前面已經排好序的數列中的適當位置,使數列依然有序,直到待排序數據元素全部插入完爲止 //假定a[0...i-1]有序,a[i]爲待插入元素 void insertSort(int

原创 輸入一個升序數組和一個整數,在數組裏面找兩個數使它們相加的和爲這個整數

思路:因爲數組爲升序數組,就可以在數組前端和尾端分別設置一個標記,依次來控制相加所得整數的大小,並與所給數比較,這樣調整起來會比較快。 void getData(int data[],int n,int M) { int i=0,j

原创 _makepath and _splitpath 分析路徑

_makepath 和 _splitpath 都是分析路徑的函數   一個path 分爲drive, dir, fname, ext 四部分 _makepath 將四個部分組裝成一個path _splitpath將一個完整的path分成