C++
_YAO阿瑶
好好学习天天向上
展开
-
线程池设计
IO模式:阻塞非阻塞忙轮询响应式-- 多路IO转接多路IO转接:select、poll、epoll//错了?//多进程/多线程比多路IO转接慢在哪?// 多进程或多线程的话,内核需要在多个进程或线程之间切换,消耗比较大//======================================================================================在一个应用程序中,会多次使用线程,因此免不了就需要多次线程的创建及销毁。但是多次线程创建和销毁会原创 2021-10-26 19:21:07 · 271 阅读 · 0 评论 -
STL::sort()源码 记录
快速排序每次将待排序数组分为两个部分,在理想状况下,每一次都将待排序数组划分成等长两个部分,则需要logn次划分。而在最坏情况下,即数组已经有序或大致有序的情况下,每次划分只能减少一个元素,快速排序将不幸退化为冒泡排序,所以快速排序时间复杂度下界为O(nlogn),最坏情况为O(n^2)。在实际应用中,快速排序的平均时间复杂度为O(nlogn)。快速排序的效率取决于递归的深度。当数组基本有序时,会向基准的一个方向进行高深度递归而基本无序时,递归的深度远远小于高深度递归的深度,效率最高。..原创 2021-04-24 15:14:27 · 111 阅读 · 0 评论 -
布隆过滤-- 概率型数据结构(probabilistic data structure),特点是高效地插入和查询
https://crossoverjie.top/2018/11/26/guava/guava-bloom-filter/https://www.huaweicloud.com/articles/4c6b38d5e80d6b93b6cee0f3dadefb23.html原创 2021-03-17 16:21:47 · 224 阅读 · 0 评论 -
函数重载遇上默认参数、占位参数
函数重载遇上默认参数会有二异性,不要使用!!int test01(int*a,int b=10){ cout<<"test——1"<<endl; return 0;}int test01(int*a){ cout<<"test——2"<<endl; return 0;}int main(){ int a = 12; int b = 20; test01(&a,b);原创 2021-03-16 13:59:15 · 176 阅读 · 0 评论 -
二维数组做函数参数
二维数组做函数参数时:int arr[i][j]; // 正确int arr[][j]; //正确int arr[i][]; //错误int arr[][]; //错误可以同时指定第一维和第二维的长度;可以只指定第二维的长度;不可以只指定第一维的长度;不可以第一维和第二维的长度都不指定。综上所述,至少指定第二维的长度。因为从实参传递来的是数组的起始地址,在内存中按数组排列规则存放(按行存放),而并不区分行和列,如果在形参中不说明列数,则系统无法决定应为多少行原创 2021-01-31 19:21:51 · 803 阅读 · 0 评论 -
vector容器的使用 注意事项
如果vector是空的,并且没有分配空间,切忌用下标进行访问,会出错!!!int main(){ vector<int>v; v[0]=1; return 0;}成功编译,但是运行的时候报错Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)。因此,当vector为空的时候,一定要用push_back()添加值。但是,如果在定义动态数组v之后,经过了resize 或reserve之后,就可原创 2021-01-07 15:25:01 · 569 阅读 · 0 评论 -
C++智能指针
shared_ptr 可以通过make_shared的标准库返回一个shared_ptr类型的指针来进行初始化,但是unique_ptr没有这样的操作,当定义一个unique_share类型的指针时,需要将其绑定到一个new返回的指针上。类似于shared_ptr,初始化unique_ptr必须采用直接初始化的形式:unique_ptr<int> p1; //正确,指向一个int类型的unique_ptrunique_ptr<int> p2(new int(5)); //正确指原创 2021-01-06 11:11:59 · 63 阅读 · 0 评论 -
黑马C++视频 预约管理系统笔记
vector定义为类的静态成员变量当vector、set之类的数据类型在.h文件中定义为类的静态成员变量时,它的初始化要放在对应的.cpp文件中switch case变量定义错误例子switch(something){ case a: int a = 0; //定义了一个变量a,他在整个switch语句可见,万一后边用到a的时候,但是这个标签又被跳过就会出现问题 break; default: break; }结果报错:error: cannot jum原创 2021-01-05 14:55:09 · 175 阅读 · 0 评论