1.QT Connect 函数的第五个参数:html
1)自动链接(AutoConnection),默认的链接方式,若是信号与槽,也就是发送者与接受者在同一线程,等同于直接链接;若是发送者与接受者处在不一样线程,等同于队列链接。
2)直接链接(DirectConnection),当信号发射时,槽函数当即直接调用。不管槽函数所属对象在哪一个线程,槽函数总在发送者所在线程执行,即槽函数和信号发送者在同一线程
3)队列链接(QueuedConnection),当控制权回到接受者所在线程的事件循环时,槽函数被调用。槽函数在接受者所在线程执行,即槽函数与信号接受者在同一线程
4)锁定队列链接(QueuedConnection)
Qt::BlockingQueuedConnection:槽函数的调用时机与Qt::QueuedConnection一致,不过发送完信号后发送者所在线程会阻塞,直到槽函数运行完。接收者和发送者绝对不能在一个线程,不然程序会死锁。在多线程间须要同步的场合可能须要这个。
5)单一链接(UniqueConnection)c++
2.快速排序多线程
int partition(int a[],int low,int high)函数
{oop
int iFlag = a[low];测试
while(low<high)ui
{this
while((low<high)&&(a[high]>=iFlag))线程
high—;设计
if(low<high)
{
int tmp = a[low];
a[low] = a[high];
a[high] = tmp;
}
while((low<high)&&(a[low]<=iFlag))
low++;
if(low<high)
{
int tmp = a[low];
a[low] = a[high];
a[high] = tmp;
}
}
return low;
}
void quickSort(int a[],int low,int high)
{
if(low<high)
{
int iMid = partition(a,low,high);
quickSort(a,low,iMid-1);
quickSort(a,iMid+1,high);
}
}
3.链表逆序
struct Node
{
int iData;
Node* pNext;
}
Node* reverseList(Node* pHead)
{
if((NULL==pHead)||(NULL==pHead->pNext))
return pHead;
Node* pNewHead = reverse(pHead->pNext);
pHead->pNext->pNext = pHead;
pHead->pNext = NULL;
return pNewHead;
}
4.链表是否有环
bool IsLoop(Node* pHead)
{
Node* pSlow = pHead;
Node* pFast = pHead;
while(pFast&& pFast->pNext)
{
pSlow = pSlow->pNext;
pFast = pFast->pNext->pNext;
if(pSlow==pFast)
return true;
}
return false;
}
5.内存拷贝
void* mymemcpy(void* dest, void* source, size_t count)
{
void* ret = dest;
if (dest <= source || dest >= (source + count))
{
while (count --)
*dest++ = *source++;
}
else
{
dest += count - 1;
source += count - 1;
while (count--)
*dest-- = *source--;
}
return ret;
}
6.字符串拷贝
char * strcpy( char *strDest, const char *strSrc )
{
assert( (strDest != NULL) &&(strSrc != NULL) );
char *address = strDest;
while( (*strDest++ = * strSrc++) != ‘\0’ );
return address;
}
七、static的做用
(1)在函数体内,静态变量具备“记忆”功能,一个被声明为静态的变量在这一函数被调用的过程当中,其值维持不变;
(2)函数体外,模块内,它的做用范围是有限制的:
静态变量:该变量能够被模块内全部函数访问,但不能被模块外其余函数访问,是一个本地的全局变量;
静态函数:做用域与普通函数不一样,它的做用域仅限于本文件中,只能被这一模块的其余函数调用,不能被模块外的其余函数调用。
static全局变量与普通的全局变量的区别:static全局变量只初始化一次,目的是防止在其余文件中被引用。
static局部变量与普通的局部变量的区别:static只被初始化一次,下一次运算是上一次的结果。
static()函数与普通函数的区别:做用域不一样,static()函数只在一个源文件重要有效,不能被其余源文件使用
类中的静态数据成员的特色:
(1)不管类的对象定义多少个,静态数据成员在类中只有一份复制品;
(2)静态数据成员存储在全局数据区,定义时,需分配空间;
(3)静态成员变量初始化是在类外;
静态成员函数不具备this指针,没法访问属于类对象的非静态数据成员,也没法访问非静态成员函数,只能调用其他的静态数据成员函数。
八、const的做用
定义const常量,具备不可变性;
进行类型检查
方便进行参数调整和修改
保护被修饰的东西,防止被意外更改
为函数重载提供参考
节省空间,避免没必要要的内存分配
9.指针与引用的区别?
(1)非空区别。在任何状况下都不能使用指向空值的引用。所以若是你使用一个变量并让它指向一个对象,可是该变量在某些时候也可能不指向任何对象,这时你应该把变量声明为指针,由于这样你能够赋空值给该变量。相反,若是变量确定指向一个对象,例如你的设计不容许变量为空,这时你就能够把变量声明为引用。不存在指向空值的引用这个事实意味着使用引用的代码效率比使用指针要高。
(2)合法性区别。在使用引用以前不须要测试它的合法性。相反,指针则应该老是被测试,防止其为空。
(3)可修改区别。指针与引用的另外一个重要的区别是指针能够被从新赋值以指向另外一个不一样对象。可是引用则老是指向在初始化时被指定的对象,之后不能改变,可是指定的对象其内容能够改变。
https://www.cnblogs.com/zyb428/p/5673738.html