自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 【Golang】对JSON的读写以及序列化反序列化

Golang的Json读写

2023-03-09 00:14:55 272 1

原创 虚析构函数

析构函数析构函数的作用是在对象生命周期结束时,进行善后的工作被用来释放内存空间。class Base{public: Base() { cout << "Base()" << endl; } ~Base() { cout << "~Base()" << endl; }};int main() { Base* pa = new Base; //显示Base() 对象被构造

2021-03-06 16:15:31 466 2

原创 堆排序

堆,大根堆,小根堆堆是一棵完全二叉树并且分为大根堆和小根堆。大根堆为其任意非叶子结点都不小于其孩子结点,小根堆则为其任意非叶子结点都不大于其孩子结点。这里用一组数分别构建大根堆与小根堆。此为大根堆:此为小根堆:堆排序的思路如下:步骤一:将n个元素构成的序列构建成大根堆。步骤二:将最后一个元素与堆顶元素互换,这时堆尾元素为最大元素。步骤三:将排除堆尾元素的剩下n-1个元素继续构建大根堆。然后重复这几个步骤直到序列有序。构建大根堆现有如下数组其数据元素为 5,7,9,2,0如

2021-02-03 13:06:43 203 1

原创 希尔排序

//希尔排序void shellSort(vector<int>& nums) { int i, j, key, inc; for (inc = nums.size() / 2; inc != 0; inc /= 2) { for (i = inc; i != nums.size(); ++i) { key = nums[i]; for (j = i; j >= inc && key < nums[j - inc]; j -= inc)

2021-02-02 21:03:52 97

原创 快速排序

//快速排序void quickSort(vector<int>& nums, int low, int high) { int i = low; //low与high的值不变 int j = high; if (i >= j) { return; } if (i < j) { int temp = nums[i]; //基准值 //从后往前找到一个数小于基准值 while (i < j && nums[

2021-02-02 14:30:40 84

原创 插入排序

//插入排序void insertSort(vector<int>& nums) { for (int i = 0; i != nums.size(); ++i) { for (int j = i; j != 0; --j) { if (nums[j] < nums[j - 1]) { int temp = nums[j - 1]; nums[j - 1] = nums[j]; nums[j] = temp; } } }}in

2021-02-02 11:49:03 89

原创 选择排序

//选择排序void selectSort(vector<int>& nums) { int minIndex = 0; for (int i = 0; i != nums.size() - 1; ++i) { minIndex = i; for (int j = i + 1; j != nums.size(); ++j) { if (nums[minIndex] > nums[j]) { int temp = nums[minIndex]; n

2021-02-02 11:10:12 60

原创 冒泡排序

//冒泡排序void bubbleSort(vector<int>& nums) { int temp = 0; for(int i = 0; i != nums.size() - 1; ++i) { //对于n个数要进行n - 1趟排序 for (int j = 0; j != nums.size() - i - 1; ++j) { if (nums[j] > nums[j + 1]) { temp = nums[j]; nums[j] =

2021-02-01 22:13:59 64

原创 C++中NULL和nullptr的区别

一、C语言中的NULL在C语言中NULL的定义是:#define NULL ((void *)0),其含义是NULL实际上是一个空指针。并且如果将空指针赋给其他类型指针的时候,会发生隐式类型转换。int *pi = NULL;char *pc = NULL;二、C++中的NULL#ifdef __cplusplus#define NULL 0#else#define NULL ((void *)0)#endifC++中的NULL实际上是0,而在C++中表示空指针则可以用0来表示。

2021-02-01 01:03:08 227

原创 短路求值(short-circuit evaluation)

逻辑与运算符对逻辑与运算符( && )来说,当且仅当两个运算对象都为真时结果为真,否则为假。bool b1 = false;bool b2 = true;bool b3 = b1 && b2;//b3的值为false逻辑或运算符对逻辑或运算符( || )来说,只要两个运算对象其中一个为真,那么结果就为真。bool b1 = false;bool b2 = true;bool b3 = b1 || b2;//b3的值为true短路求值(short-c

2021-01-16 17:12:54 783

原创 C++实现二分查找

二分查找二分查找是从“有序表”中寻找一个已经给定了的值。该算法从有序表的中间位置开始搜索,如果中间位置的元素正好就是要找的,搜索就结束。要找的元素小于中间元素,就继续搜索有序表的左半部分。如果要找的元素大于中间元素,就继续搜索有序表的右半部分,直到找到目标或者表中无目标元素。使用C++迭代器实现二分查找代码如下:#include <iostream> #include <vector>using std::vector;using namespace std;int

2021-01-13 02:01:46 1025

原创 指向常量的指针与指针常量的区别

指向常量的指针指针可以指向常量或者非常量,其中指向常量的指针意思是指针所指的对象是一个常量,所以我们不能通过指向常量的指针来改变指针所指的对象的值。如果想要存放常量对象的地址,就只能使用指向常量的指针。下面是指向常量的指针的定义:const int a = 520; //初始化一个整型常量且值为10const int* p1 = &a; //指针p1用来指向const int对象也就是整型常量//也可以写成下面形式//int const* p1 = &a;指向常量的

2021-01-11 02:20:15 1430 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除