原创 C++中const的作用(至少要說出3個)

在C/C++開發中經常會用到const,這個修飾符。今天就討論一下它的作用。 (1) const用於定義常量:const定義的常量編譯器可以對其進行數據靜態類型安全檢查。這個是開發中經常用到的const的最基本的作用。 (2) const

原创 怎麼判斷focusWidget()返回的是哪類型控件

在QT開發過程中經常會遇到這樣的問題,根據鼠標焦點的定位到哪個控件上? 如何判斷focusWidget()返回的是哪類型控件 如何判斷focusWidget()返回的是哪類型控件比如:有QLineEdit, QSpinBox等控件,通過f

原创 選擇(select)排序算法

直接排序是不穩定的排序。 1、直接排序算法的基本思想 n個記錄的直接選擇排序可經過n-1趟直接選擇排序得到有序結果。 (1) 初始狀態:無序區爲A[1...n],有序區爲空。 (2) 第一趟排序:在無序區A[1...n]中選出最小的記錄A

原创 關於pthread裏面一些函數的使用心得!

 第一次使用pthread,遇到的問題還真不少,現在我一一記錄一下:    1.關於編譯時出現 對‘pthread_create’未定義的引用 之類

原创 歸併(Merge Sort)排序算法

歸併排序(Merge sort)是利用"歸併"技術來進行排序的。歸併是指將若干個已排序的子文件合併成一個有序的文件。 1、歸併排序的基本思想 兩個歸併算法的基本思想:設有兩個有序的子文件(相當於輸入堆)放在同一向量中相鄰的位置上:A[l

原创 QString類型轉化成const char *類型

如何將QString類型轉化成const char *類型呢? QString filepath="abcdefg"; const char *str = filepath.toAscii().constData(); 或者 Qstrin

原创 C++ STL基本容器的使用

高效的使用STL 僅僅是個選擇的問題,都是STL,可能寫出來的效率相差幾倍; 熟悉以下條款,高效的使用STL; 1、當對象很大時,建立指針的容器而不是對象的容器 1)STL基於拷貝的方式的來工作,任何需要放入STL中的元素,都會被複制; 

原创 QT中SIGNAL與SLOT連接的幾種方式

signal/slot在底層會使用三種方式傳遞消息。參見QObject::connect()方法: bool QObject::connect ( const QObject * sender, const char * signal,

原创 堆(heap)排序算法

堆排序算法是複雜的排序算法,是不穩定的排序算法。 1、堆排序的基本思想 堆排序定義:n個有序列A1,A2,...,An成爲堆,有下面兩種不同類型的堆。 大根堆:所有子節點都大於其父節點,即Ai<=A2i且Ai<=A2i+1。 小根堆:所有

原创 基數(cardinality)排序算法

基數排序是箱排序的改進和推廣。 1、基數排序的基本思想 箱排序也稱爲桶排序(Bucket Sort),其基本思想是:設置若干箱子,依次掃描待排序的記錄R[0],R[1],R[2]...R[n],把關鍵字等於k的記錄全部裝入到第k個箱子裏(

原创 快速(quick)排序算法

快速排序是不穩定的排序。 1、快速排序的基本思想 快速排序是C.R.A.Hoare於1962年提出的一種劃分交換排序。它採用了一種分治的策略,通常撐起爲分治法。分治法的基本思想是:將原問題分解爲若規模更小但結構與原問題相似的子問題。遞歸地

原创 宏定義的使用

宏定義對於新手來說經常會出問題,在宏中需要把參數小心地用括號括起來。因爲宏只是簡單的文本替換,如果不注意,很容易出歧義。 看下面一個例子: #include<stdio.h> #include <stdlib.h> #define SQR

原创 #include和#include "head.h"有什麼區別

尖括號<>表名這個文件是一個工程或標準頭問題。查找過程會首先檢查預定義的目錄,我們可以通過設置搜索路徑和環境變量或命令行選項來修改這些目錄。 如果文件名用一對引號括起來,則表明該文件是用戶提供的頭文件,查找該問題件時將從當前文件目錄(或文

原创 QStyledItemDelegate類的使用

之前在開發項目的時候遇到一個問題,如下圖所示: 我在ui界面上設置了這個ComboBox的item的CSS樣式之後,但是在調試的時候,總是沒有效果。於是,自己翻看幫助文檔。如果不使用QML的話, 只能使用QStyledItemDeleg

原创 不使用任何中間變量如何將a、b的值進行交換

此題主要是考察工作經驗,在日常工作中經驗遇到內存不夠的情況,在內存不夠的情況,怎麼不使用中間變量使兩個變量的值進行交換呢? 代碼實現: #include<stdio.h> #include <stdlib.h> void swap1(i