语言
tux~
这个作者很懒,什么都没留下…
展开
-
1615. 最大网络秩
这道题是我思考有问题了,做了好多遍,并没有很困难。先确定最大数组和次大数组没问题,两种情况,如果最大数组只有一个或最大数组大于一个。如果最大数组大于一个,就用两个for遍历最大数组。名字起的不好,第二大的竟然叫minor。有的教程写的如果是完全图就不用算了,但那个是特殊情况,不考虑不会对结果有影响。原创 2022-09-17 17:03:51 · 66 阅读 · 0 评论 -
自认为最好的rule_of_five
自认为最好的rule_of_five原创 2022-08-20 19:00:01 · 385 阅读 · 0 评论 -
1254. 统计封闭岛屿的数目
leetcode原创 2022-06-28 21:50:23 · 116 阅读 · 0 评论 -
695.最大岛屿面积
leetcode原创 2022-06-28 21:42:42 · 70 阅读 · 0 评论 -
200. 岛屿数量
岛屿数量原创 2022-06-27 22:43:44 · 51 阅读 · 0 评论 -
转换构造函数和类型转换函数
1. 转换构造函数说的贼神奇,其实就是一种普通构造函数的新用法而已。当一个构造函数只有一个参数,而且该参数又不是本类的const引用时,这种构造函数称为转换构造函数当只有一个参数,不用重载=运算符(即赋值构造函数)就可以实现对某些参数的赋值。例如class a{ public: a(int _b)///<这句既是普通的构造函数,也是转换构造函数 {b=_b;} a(int _b, int _c) {b=_b; c=_c;} private: int b; in原创 2021-12-27 15:09:12 · 2591 阅读 · 3 评论 -
new和malloc、delete和free
1. new和malloc的区别说了很多,最本质的区别是,malloc只是new的一部分。new有三个步骤operator new,先创建一个新的对象,其中operator new的参数中含有malloc的成分;指针强制转化,malloc返回的指针类型是void*的,转化为new出来对象的类型;执行构造函数2. delete和free的区别delete也调用了free执行析构函数,删除对象中的垃圾回收operator delete,也是重载过的运算符,其中也有free的成分。3.原创 2021-12-21 18:05:38 · 79 阅读 · 0 评论 -
标准类标准类标准类
#include<iostream>#include<string.h>using namespace std;class str{ public: str(const char* str)///<普通构造 { if(nullptr==str) { pstr = new char[1]; *pstr = 0; } else { pstr = new char[strlen(str)+1]; str原创 2021-12-21 09:32:51 · 79 阅读 · 0 评论 -
运算符重载
@[toc]### 1. 类内重载类内的运算符重载相当于是这个类的成员函数。因此有两个string a和b,当执行a+b的是相当于是a调用+这个函数,而参数就是b,因此形参会有两个。如下图所示,比如this指针就是第一个参数,即string a```c++class cl{ private: int x,y; public: cl(int _x, int _y):x(_x),y(_y){}; cl operator + (const cl &a) { retu原创 2021-12-21 08:21:04 · 70 阅读 · 0 评论 -
随机数叔叔
文章目录1.随机种子和随机数的关系2.生成随机数1.随机种子和随机数的关系既然都有随机数了,那我要随机种子干嘛用?来,用实例告诉你有啥用。#include <iostream>#include <stdlib.h>#include <time.h>using namespace std; void main(){// srand((int)time(0)); for (int i = 0; i < 10; ++i) { cout<&原创 2021-10-08 18:41:42 · 72 阅读 · 0 评论 -
说清vector的扩容及size capacity问题
文章目录1. vector 扩容2. capacity和size的意义3. capacity和size的修改1. vector 扩容这个没啥好讲的,就是如果满了就扩一倍。2. capacity和size的意义vector的有效区域和实际占用的区域是不一样的,这就是因为扩容的存在。capacity存放的是实际占用的空间,size存放的是可以使用的有效空间。例如我在vector<int>a(3,1);后,vector的size是3,capacity也是3,但是如果我此时push_ba原创 2021-09-26 20:39:35 · 1058 阅读 · 0 评论 -
makefile复习,会了这些加上百度,看懂工程文件应该不是问题了(网上最出名的那篇文章我看起来太乱了)
文章目录1.依赖的基本关系2.变量2.1变量的赋值2.2 特殊变量2.3 全局变量3.规则3.1 模式规则(循环遍历)3.2 隐含规则4.头文件同步更新5.伪目标6.子makefile的调用6.1 主makefile的编写6.2 子makefile的编写1.依赖的基本关系目标:依赖列表命令列表每一个规则中的目标,都可以是一个文件,也可以是一个标签(.o或.c文件)每一个规则中的目标,不一定要有依赖每一个规则,不一定要有命令列表。但是依赖和命令列表至少要有一个2.变量2.1变量的赋值B原创 2020-07-19 08:25:50 · 116 阅读 · 0 评论 -
c/c++编程小知识/19.extern和C
这个流程我一直有疑问,其实是我对之前的编译过程理解的不好。1. extern这个关键字的作用就是声明该变量或函数来自于其它函数,让函数的编译过程能够成功执行。如果这个函数或变量从来都没出现过,加上extern也能让程序编译通过,但是链接的时候会报错,例如undefined reference to错误。1.1 变量在定义变量的时候,这个extern居然可以被省略(定义时,默认均省略);在声明变量的时候,这个extern必须添加在变量前,所以有时会让你搞不清楚到底是声明还是定义。或者说,变量前有ext原创 2020-06-20 15:49:25 · 209 阅读 · 0 评论 -
01.编程习惯.md
文章目录1.创建线程1.创建线程问题:在创建线程的时候调用pthread_create传入的只能指针,如果传入的是栈的指针,该函数退出后栈的空间就会被释放,新线程传入的值就会是错的。解决方法1:可以使用static或malloc或全局变量来处理,如果是malloc还需要在新线程中释放,全局变量不是个好事,static最佳int fuc(struct a *pSrc){ pthread_t thrId; static struct a pSrctemp; ///<新线程传入的只原创 2020-05-16 12:18:45 · 183 阅读 · 0 评论