原创 C++計算均值方差

C++計算均值方差 void getMeanStd0(const vector<int>& vec, int& mean, double& stdd) { assert(!vec.empty()); mean = 0;

原创 c/c++實現桶排序

桶排序 - 實現線性排序,但當元素間值得大小有較大差距時會帶來內存空間的較大浪費。首先,找出待排序列中得最大元素max,申請內存大小爲max + 1的桶(數組)並初始化爲0;然後,遍歷排序數列,並依次將每個元素作爲下標的桶元素值自

原创 c/c++實現選擇排序

選擇排序 - 首先初始化最小元素索引值爲首元素,依次遍歷待排序數列,若遇到小於該最小索引位置處的元素則刷新最小索引爲該較小元素的位置,直至遇到尾元素,結束一次遍歷,並將最小索引處元素與首元素交換;然後,初始化最小索引值爲第二個待排

原创 c++內存泄漏問題

產生原因分析 內存泄漏: 所以當程序退出時,系統會收回分配的內存,由於內存已被錯誤地釋放掉,於是就會出現“Debug Assertion Failed”的錯誤。 這個assert說明,有一塊內存在被釋放的時候,它的頭部裏面的信息已

原创 Qt各種顏色名稱及CSS對照表

css顏色代碼對照 參見: https://blog.csdn.net/zy_heu/article/details/78952173

原创 c/c++實現堆排序

堆排序 - 堆排序的思想借助於二叉堆中的最大堆得以實現。首先,將待排序數列抽象爲二叉樹,並構造出最大堆;然後,依次將最大元素(即根節點元素)與待排序數列的最後一個元素交換(即二叉樹最深層最右邊的葉子結點元素);每次遍歷,刷新最後一

原创 c/c++實現計數排序

計數排序 核心在於將輸入的數據值轉化爲鍵存儲在額外開闢的數組空間中。 作爲一種線性時間複雜度的排序,計數排序要求輸入的數據必須是有確定範圍的整數。 計數排序(Counting sort) 是一種穩定的排序算法。計數排序使用一個額外

原创 c/c++實現歸併排序

歸併排序 - 採用了分治和遞歸的思想,遞歸&分治-排序整個數列如同排序兩個有序數列,依次執行這個過程直至排序末端的兩個元素,再依次向上層輸送排序好的兩個子列進行排序直至整個數列有序(類比二叉樹的思想,from down to up

原创 c/c++實現基數排序

基數排序 - 桶排序的改進版,桶的大小固定爲10,減少了內存空間的開銷。首先,找出待排序列中得最大元素max,並依次按max的低位到高位對所有元素排序;桶元素10個元素的大小即爲待排序數列元素對應數值爲相等元素的個數,即每次遍歷待

原创 Qt給定時器開線程及多線程下不同connect連接類型的分析

功能顯示界面 Qt給定時器開線程 定義定時器和子線程 timerthread.h中: class TimerThread : public QMainWindow { Q_OBJECT public: TimerThrea

原创 Qt+ VS實現多輸入框鍵盤迴車響應事件

在通信界面經常出現,一個ui裏面,有很多輸入框,按下回車後,如何確定是剛剛輸入的那個輸入框的值發生了改變呢。 首先獲取當前光標位置 QWidget* fw = QApplication::focusWidget(); 重寫鍵盤事

原创 Qt如何實現按住Ctrl鍵,點擊QSpinBox成倍加減

需求 有時候,一個QSpinBox,點擊上下加減,進行輸入值調節時候,一直一個小步長,調節太慢,一直一個大步長,調節又太粗糙。因此,就需要做一個快捷方式:比如,按住ctrl鍵,調節步長變大,鬆開ctrl鍵,調節步長恢復原小步長。

原创 C/C++遞歸算法小測試

遞歸算法找最大值 // myRecrusion.cpp : 定義控制檯應用程序的入口點。 // #include "stdafx.h" #include <iostream> int findMax(int a[], int

原创 C/C++函數重載和函數指針的用法

函數重載和函數指針 函數重載:只針對同名函數的形參類型,個數,順序,不看返回值。 正確重載: void func(int a); void func(int a,int b); void func(float a); void f

原创 VS + Qt環境下解決中文亂碼問題

中文亂碼問題 VS + Qt環境下,正常輸出中文,會出現亂碼問題,這是VS與操作系統的編碼字符集的問題。 例如: setWindowTitle("中文窗口"); 出現: 解決方法: a,如果,在需要輸出的中文的地方比較少,可以