C++ explicit 关键字

C++ explicit 关键字的作用是禁止只有一个参数的构造函数发生默认的隐式转换(或者除第一个参数外,其它参数都有默认值),如下面的代码:#include <iostream> using namespace std; class TestExplicit { public: TestExplicit(double dVal) :m_dVal(dVal)

- 阅读全文 -

MQTT遗愿(last will) 基于paho.mqtt.c库实现

一、 MQTT遗嘱MQTT 可以设置遗嘱,客户端在连接Broker的时候将遗嘱内容(也是topic + payload形式,遗嘱也有一个主题)发送给Broker并保存在Broker中,当客户端因为非正常原因断开与Broker的连接时,Broker会将遗嘱信息发送给订阅了该主题(订阅遗嘱的主题)的客户端。客户端正常调用DISCONNECT断开连接时属于正常断开连接,Broker不会发送遗嘱,而且会将

- 阅读全文 -

汉诺塔问题(递归)

一、题目描述​ 相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号X、Y、Z),在X杆自下而上、由大到小按顺序放置64个金盘。游戏的目标:把X杆上的金盘全部移到Z杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于X、Y、Z任一杆上。二、思路分析​ 假设

- 阅读全文 -

生成指定范围内的随机数

生成10-20之间的随机数#include<iostream> using namespace std; int main() { // 生成10-20之间的随机数 int min = 10, max = 20; int num = rand() % (max - min + 1) + min; return 0; }

- 阅读全文 -

C++内联函数

一、内联函数​ 对于代码量较少,而且经常调用的函数,可以使用内联函数来减少函数调用的开销。内联函数是在编译时将函数调用处的函数体替换,类似于宏展开。​ 制定内联函数的方法是在函数的定义(不是声明处)出增加 inline关键字。在函数的声明处添加inline关键字虽然没有错,但是这种做法是无效的,编译器会忽略在函数的声明处添加inline关键字。由于内联函数代码量较小,通常的做法是将函数

- 阅读全文 -

C++类中创建线程

​ 经常会遇到需要在类中创建线程,可以使用静态成员函数,并且将类实例的指针传入线程函数的方式来实现。实现代码代码如下:/* 类头文件 CTestThread.h */ #include<iostream> #include<process.h> #include<Windows.h> class TestThread { public: Test

- 阅读全文 -

C++创建和使用动态链接库

一个简单的动态链接库的生成和调用例子,太过简单,大神请绕道。一、创建动态链接库使用vs创建工程选择动态链接库。在项目中创建源文件和头文件,并在文件中添加以下代码。在头文件中添加以下代码// dlltest.h 头文件,使用动态链接库时需要包含头文件 #pragma once #ifdef __DLLEXPORT #define __DLL_EXP _declspec(dllexport)

- 阅读全文 -

插入排序的C、C++实现

一、插入排序有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但

- 阅读全文 -

选择排序的C、C++实现

一、选择排序选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完,下面是程序实现。

- 阅读全文 -

冒泡排序的C、C++实现

一、冒泡排序冒泡排序就是重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如数字从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。冒泡排序算法的原理

- 阅读全文 -