Time of Update: 2018-12-04
1,靜態常量整數成員在class內部可以直接初始化。2,STL迭代器前閉後開區間 [) 的設計,遍曆的時候直接:for( first; first != last; first++)使用 != ,而不是 < 或 >,好處元素之間無需佔有連續的記憶體空間。3,vs下的stl空間配置器在標頭檔<xmomory>中。空間配置分為兩個階段:申請時候:申請記憶體地區(_Allocate函數,調用::operator
Time of Update: 2018-12-04
插入排序:template<typename T>void insert_sort(T* ptr, int length){typedef T type;typedef type* ptr_type;type key;for (int i(1); i<length; i++){key = ptr[i];int j = i-1;while (j>=0 && ptr[j]>key){ptr[j+1] = ptr[j];j--;}ptr[j+1] =
Time of Update: 2018-12-04
老生常談: 插入排序最壞情況O(n2), 其內迴圈比較緊湊,對於小規模輸入是一個快速的原地(數組中某個局部)排序演算法。歸併排序有著漸進已耗用時間nlgn時間,merge不在原地操作(merge最用在整個數組中)。堆排序正是前面兩者優點的整合,在nlgn時間,對n個數進行原地排序[1]。 分析 堆是典型的完全二叉樹,n個元素的堆數組中。 n/2(隱式下取整)+1 開始是葉子節點。證明:對於任意下標為i(從0開始)的非葉子節點,有性質:2*i+1,
Time of Update: 2018-12-04
雜談:指標和數組 對於數組編譯器可以自動推到出內部元素的大小,可以通過sizeof或者模板, //1int myints[] = {10,20,30,5,15};int length = sizeof(myints)/sizeof(myints[0]);//2template <typename T,int size>int GetArraySize(T (&ptr)[size]){return size;}GetArraySize(myints);
Time of Update: 2018-12-04
alpha混合理論見前一篇部落格:http://blog.csdn.net/dizuo/archive/2009/12/18/5035371.aspxalpha融合必須對物體設定不同的z值,可以通過glVertex3*繪製指定不同z值;或者通過glVertex2*繪製,調用glTranslate3f/d設定不同的z值。opengl繪製二維圖形,進行alpha融合時候,如果所有二維圖形具有相同的zvalue=0.0f,即使進行了正確的alpha融合設定,最終每個圖形只是和視窗背景進行融合,圖形間的
Time of Update: 2018-12-04
方案1:嘗試使用Qt的訊號槽機制:當控制項資料變化時發出訊號,與該訊號串連的槽函數將Process的狀態重設!有點繞~方案2:在Process內部保留一個資料拷貝,當最新資料和拷貝資料不一致時,將Process的狀態重設,該Process所有後繼結點更新。void setData(const flowType& v){ *d_ptr = v; }改成void setData(const flowType& v){if (*d_ptr != v) { reset();
Time of Update: 2018-12-04
序言 非比較排序,不需要比較,交換,線上性時間內完成排序。缺點:空間要求較多,不是原地排序,典型的空間換取時間。計數排序 計數排序利用一個特點:已經排好序(例如從小到大)的數組中,第i個元素為x,則數組中一定有:小於等於x的元素有i個。計數排序需要一個空間代價:n + max_num.桶排序 桶排序包含兩個步驟:分發元素到每個桶內;順序回收桶內元素。虛擬碼如下:BUCKET_SORT (A)n ← length [A] For i = 1 to n do
Time of Update: 2018-12-04
Movidis the acronym for Modular Open Vision Interaction Daemon. It's a crossplatform and Open Source tracker, designed to be as modular as possible. code download :http://github.com/tito/Movid Movid思路分析
Time of Update: 2018-12-04
/* 作者:田帥學校:**大學版本:紅/黑樹狀結構初始版本*/#include"stdio.h"#include"malloc.h"#define MIN -99999999 //不要加等號 #define MAX 99999999struct node {long key;char color;struct node *p;struct node *leftChild;struct node *rightChild;};node *nil,*root;//建立根節點和葉子節點int
Time of Update: 2018-12-04
序每個類中有一個虛函數表,類的執行個體中有一個指標指向類的虛函數表。定義一個類的多個對象,調試跟蹤對象中的虛函數表,不同對象的虛函數地址和內容完全一致證明了這一點。#include <iostream>using namespace std;class VirtualTest{public:int intSlot;float floatSlot;bool boolSlot1;bool boolSlot2; void test0(){cout
Time of Update: 2018-12-04
問題描述:程式是基於MFC對話方塊,在dlg.cpp中定義了大批的全域變數:靜態數組,整型,局部,結構體等。這麼一個結構體: enum {PATH_NUM = 3,PATH_POINT_NUM = 33}; struct TrackPath{char name[16];//#track_path#int trackChannelNum;//當前跟蹤的通道號int num[PATH_NUM];//有效頂點數<=100int pathPnts[PATH_NUM][PATH_POINT_NUM]
Time of Update: 2018-12-04
一,題目 兩個非降序鏈表的並集,1->2->3和 2->3->5 並為 1->2->3->5。另外只能輸出結果,不能修改兩個鏈表的資料。二,遞迴解法 #include <iostream>using namespace std;struct Node{ int data; Node * next;}; Node * MergeRecursive(Node *head1 , Node *head2){ if (
Time of Update: 2018-12-04
Search engine results page垃圾技術(Spamming) 垃圾技術是一種欺詐性的 SEO 手段,它嘗試欺騙爬行器(spider),並利用排名演算法中的漏洞來影響針對目標關鍵詞的排名。垃圾技術可以表現為多種形式,但是 “垃圾技術” 最簡單的定義是 Web 網站用來偽裝自己並影響排名的任何技術。根據是否採用垃圾技術,SEO 方法可分為兩大類: 黑帽 SEO(Black hat SEO):用垃圾技術欺騙搜尋引擎。黑帽 SEO 以偽裝、欺詐和竊取的方式騙取在 SERP
Time of Update: 2018-12-04
一,前序走訪非遞迴: 根據前序走訪訪問的順序,優先訪問根結點,然後再分別訪問左孩子和右孩子。即對於任一結點,其可看做是根結點,因此可以直接存取,訪問完之後,若其左孩子不為空白,按相同規則訪問它的左子樹;當訪問其左子樹時,再訪問它的右子樹。因此其處理過程如下: 對於任一結點P: 1)訪問結點P,並將結點P入棧; 2)判斷結點P的左孩子是否為空白,若為空白,則取棧頂結點並進行出棧操作,並將棧頂結點的右孩子置為當前的結點P,迴圈至1);
Time of Update: 2018-12-04
貪心演算法講解例題:作用選取範圍問題問題描述有一個需要使用每個資源的n個活動組成的集合S= {a1,a2,···,an },資源每次只能由一個活動使用。每個活動a都有一個開始時間和結束時間,且 0<= s < f < 。一旦被選擇後,活動a就佔據半開時間區間[s,f]。如果[s,f]和[s,f]互不重疊,則稱兩個活動是相容的。該問題就是要找出一個由互相相容的活動組成的最大子集。11個活動按結束時間排序好,之後為:s[]={1, 3, 0, 5, 3, 5, 6, 8, 8,
Time of Update: 2018-12-04
set和map都是繼承 _Tree。而紅/黑樹狀結構的修改操作需要頻繁地進行比較操作,_Tree的設計將比較函數放在了模板列表中,使用trait技術,可以說最大限度的增加了自由度。 基於trait技術_Tree容器中元素的比較操作調用trait中的comp成員對象,comp是一個仿函數對象:具體可參見_Tree::insert函數:_Pairib insert(const value_type& _Val){// try to insert node with value
Time of Update: 2018-12-04
畢設是在控制台下面利用opengl做了一個簡單的軟體,介面如下:最後想增加一個開啟檔案功能,使用了OPENFILENAME這個結構,
Time of Update: 2018-12-04
一,題目 給定鏈表的頭指標和一個結點指標,在O(1)時間刪除該結點。鏈表結點的定義如下:struct ListNode{int m_nKey;ListNode* m_pNext;};函數的聲明如下: void DeleteNode(ListNode* pListHead, ListNode* pToBeDeleted);二,分析
Time of Update: 2018-12-04
一,對於一個整數對於一個整數矩陣矩陣,存在一種運算,對矩陣中任意元素加一時,需要其相鄰(上下左右)某一個元素也加一,現給出一正數矩陣,判斷其是否能夠由一個全零矩陣經過上述運算得到。 分析:對任意一個位置,他的值不大於周圍(上下左右)4個臨格的數值的和,如果大於則該矩陣不能由全零矩陣得到 解法一:可能是我能想到的最複雜的方法 1)將二維數組根據行優先原則,變為一維數組。
Time of Update: 2018-12-04
一,題目 四對括弧可以有多少種匹配相片順序?比如兩對括弧可以有兩種:()()和(())二,解答 解法一:左右括弧成一對則抵消 可以將左括弧看成1右括弧看成 -1,然後對8個數進行全排列 對每個排列判斷,是否符合條件,逐個相加,sum>=0直到遍曆完該序列,符合條件則count++