自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux多线程(最全,收藏)

文章目录线程概述线程和进程的区别线程间共享和非共享的资源共享资源非共享资源创建线程(pthread_create)终止线程(pthread_exit)连接已终止的线程(pthread_join)线程分离(pthread_detach)线程取消(pthread_cancel)线程同步mutex死锁读写锁生产者消费者模型条件变量信号量线程概述1. 与进程类似,线程是允许应用程序并发执行多个任务的一种机制。一个进程可以包含多个线程。同一个程序中的所有线程均会独立执行相同程序,且共享同一份全局内存区域,其中包

2021-11-05 21:17:54 2270

原创 Linux进程间通信(附代码)

进程间的通信    每个进程都是独立的,都有属于自己的虚拟地址空间,经过操作系统的段页管理将虚拟地址映射到不同的物理内存上,因此不同进程之间的信息是不能直接进行通信的,需要经过内核的帮助才能通信。进程通信的概念    进程间通信又称IPC(Inter-Process Communication),指不同进程之间进行数据的交换。管道    管道对应内核的一块缓冲区,分为两种:有名管

2022-05-02 18:58:52 454

原创 C语言中字符和字符函数

文章目录求字符串长度-strlen字符串拷贝 strcpy字符串追加 strcat求字符串长度-strlensize_t strlen(const char *str) char arr[] = "kobe"; int len = strlen(arr); cout << len << endl;//4***:strlen计算的是"**\0**"之前的数据长度 :参数指向的字符串必须以“\0”结束 :函数的返回值为size_t,是无符

2021-11-03 10:16:44 139

原创 C++设计模式

文章目录单例模式懒汉式饿汉式测试单例模式有没有创建成功单例模式遇见多线程单例模式单例模式是确保类只有一个对象,并提供一个全局访问点,一般使用static方法,该对象被所有对象共享要私有化构造函数,成员指针变量class singleton {private: static singleton *p; singleton() {//私有化构造函数 p = new singleton; }public: static singleton *getinstance() { return

2021-10-10 14:41:29 100

原创 必会的Git操作

文章目录Git简介Git的诞生分布式和集中式Git的安装linux安装git创建版本库吧文件添加到仓库中高阶指令版本回退Git简介    如果问世界上最好的编程语言是什么,可能程序员会打起来,但如果说最好的代码管理工具是什么,应该都会说是Git。     Git是目前世界上最好用的代码版本管理工具(没有之一)!    每一个写论文的同学应该都有这种体验,论文反反复复改了七八十个版本,一直到最后改到死,每次都得

2021-10-09 11:00:41 83

原创 手写基于C++11的线程池

文章目录线程池定义线程池的结构线程同步线程池线程池定义线程池是服务器预先创建一组子线程,以空间换时间,数量应该和电脑CPU数量差不多,线程池中所有线程执行形同的代码。当有新的任务到来的时候,主线程通过某种方式唤醒线程池中的一个子线程为之服务。主线程唤醒子线程的方式有多种,;主线程通过某种算法选择子线程,比如随机算法或者round robin算法主线程和子线程通过一个共享的工作队列来同步,子线程都睡眠在该工作队列中。有新的任务到来时候,主线程将任务添加到工作队列中,这将唤醒正在等待任务的子线程

2021-08-15 16:17:55 258 1

原创 磁盘管理

查看现有磁盘[root@chao ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot└─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm / └─cento

2021-06-26 15:49:14 81

原创 Linux文件管理

文章目录磁盘介绍与管理硬盘的分类:常见的linux文件系统Linux文件系统具体由三部分组成:文件名,inode,blockinodeinode的号码目录文件磁盘介绍与管理硬盘的分类:固态硬盘----价格昂贵,寿命长,读取速度快机械硬盘------怕摔、怕磁常见的linux文件系统ext: Linux最早的文件系统,由于性能和兼容性上有很多缺陷,现在很少使用ext2:是ext文件系统的升级版本,于1993年发布,支持最大16TB的分区和最大2 GB的文件ext3:ext2的升级版本,最大

2021-06-22 13:31:11 81

原创 Linux用户和用户组管理

文章目录Linux系统用户账号的基本管理添加新的用户账号使用useradd命令,语法如下:实例1Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个身份进入系统。每个用户账号都拥有唯一的用户名和各自的口令。用户在登录时候键入正确的用户名和口令后,就能够进入系统和自己的主目录。实现用户的账号管理,要完成的工作主要有以下几个方面:1:用户账号的添加、删除和修改2:用户口令的管理3:用户组的管理这里有必要提一下,在Wind

2021-06-19 16:23:54 441

原创 Linux进阶指令

文章目录进阶指令进阶指令df-h:查看磁盘剩余空间***free -m***查看剩余多少内存swap:用来临时内存,当系统真实内存不够用时候临时使用磁盘空间作为内存***date***用来查看系统当前时间***date -%F***按照年月日是的输出格式输出日期cal 输出当前月的日历cal-y 输出当前年的日历管道符 |作用:一般可用于过滤特殊字符,扩展处理语法:不可单独使用,必须配合其他指令一起使用ls /|grephostname:输出操作服务器的主机名hostn

2021-06-16 17:32:56 70

原创 Linux

文章目录Linux系统的文件文件与文件夹目录文件结构指令和选项基础指令安装虚拟机太麻烦,直接阿里云买个服务器安装centos7.4系统通过xshell链接!Linux系统的文件文件与文件夹文件:一般是一个独立的东西,可以通过一些特定的工具打开并且其中不能包含除了文件之外的东西。文件夹:可以在其中包含其他文件。Linux中一切皆文件、目录文件结构通过 # ls命令可以查看linux有哪些文件夹bin:全程binary,含义二进制。该目录一般存储的是二进制文件,文件都是可以运行的dev:

2021-06-14 16:05:54 73

原创 C++封装、继承、多态

文章目录1 内存分区模型代码区全局区栈区堆区2 引用1 内存分区模型内存分区的意义:不同区域存放的数据,赋予不同的生命周期代码区存放函数体的二进制代码,由操作系统进行管理存放CPU执行的机器指令代码区是共享的,共享的目的是对于频繁被执行的程序,只需要在内存中有一份代码即可代码区是只读的,使其只读的原因是防治程序意外的修改它的指令全局区存放全局变量和静态变量以及常量全局变量和静态变量存放在此全局区还包含了常量区,字符串常量和其他常量、该区域的数据在程序结束后由操作系统释放int g

2021-05-31 16:26:23 737

原创 C++指针

文章目录指针定义指针空指针和野指针const修饰指针1:常量指针2:指针常量3:const既修饰指针又修饰常量指针和数组指针和函数指针 函数 数组指针用来存放地址的变量定义指针 int a = 2;//定义变量 int *p = &a;//定义指针变量 cout << "a的地址为:"<<p << endl;//a的地址为:009FF7C0空指针和野指针空指针:指针变量指向内存中编号为0的空间用途:初始化指针变量注意:空指针指向的内容是不可

2021-05-18 17:27:38 73

原创 C++STL总结详解

用C++刷题很久了,对用到的STL做个总结,方便以后查阅学习。文章目录STL的诞生STL中的容器、算法和迭代器vector容器vector插入数据vector也可以存放自定义的数据类型,嵌套vector存放数据,并用迭代器遍历vector删除元素vector互换容器vector预留空间string容器基本概念构造函数赋值操作string拼接操作string查找和替换string比较string字符存取string插入和删除string子串STL的诞生C++的面向对象和泛型编程思想,目的是复用性的提升。

2021-05-05 21:32:55 362

原创 STL中next(),advance(),prev(),next_permutation()函数

文章主要内容next()函数advance()函数prev()函数lower_bound()函数upper_bound()函数next()函数next意为下一个,用来获取一个距离指定迭代器n个元素的迭代器。next()函数的语法格式如下:template <class ForwardIterator> ForwardIterator next (ForwardIterator it, typename iterator_traits<ForwardIterator

2021-05-03 12:02:28 339

原创 剑指offer构建乘积数组

剑指offer构建乘积数组分两步走:先从左上到右下再从右下到左上。class Solution {public: vector<int> multiply(const vector<int>& A) { int n = A.size();//A数组的尺寸 vector<int>B(n,1);//用0初始化B数组,大小为n, for(int i=1; i<n; i++){ //

2021-04-19 17:02:59 73

原创 STL容器使用时机

vector使用场景:比如软件历史操作记录的存储deque使用场景:排队购票系统    vector和deque的比较:1:vector.at()比deque.at()效率高,因为vector的开头是固定的,而deque开始位置不固定2:如果有大量元素释放操作的话,vector花的时间更少,3:deque支持头部的快速插入和快速移除,这是deque的优点list使用场景:公交车乘客的存储,随时可能有乘客下车,支持频繁的不确定位置元素的插入和删除set使用场..

2021-03-27 21:21:31 86

原创 C++ STL中的map容器

map/multimap容器的基本概念    1.map容器的基本概念       map的特性是,所有元素都会根据元素的键值自动排序,map所有的元素都是pair,同时拥有键值和实值,pair第一元素被视为键值,第二元素被视为实值,map不允许两个元素有相同的键值。       可以通过map的迭代器改变map的键值吗》答案是不行的,因为map的键值关系到map元素的排列规则,任意改变map

2021-03-27 20:47:30 78

原创 C++ STL中的set容器

set/multiset容器的基本概念    1.set容器的基本概念     set的特性是,所有元素都会根据元素的键值自动被排序,set的元素不像map那样可以同时拥有实值和键值,set元素即是键值也是实值。set不允许两个元素有相同的键值。     那可以通过set的迭代器改变set元素的值吗?答案是不行的,因为set元素值就是其键值,关系到set元素的额排序规则,如果任意改变set元素值,会严重破坏s

2021-03-27 15:01:12 154

原创 天池心跳信号分类比赛-模型融合

导入需要用到的机器学习库函数import pandas as pdimport numpy as npimport warningsimport matplotlibimport matplotlib.pyplot as pltimport seaborn as snswarnings.filterwarnings('ignore')%matplotlib inlineimport itertoolsimport matplotlib.gridspec as gridspecfro

2021-03-24 12:38:20 276

原创 机器学习中模型融合

    模型融合有以下几种方式:      1.简单加权融合回归(分类概率):算数平均融合,集合平均融合分类:投票(Voting)综合:排序融合(Rank averaging)融合,log融合      2.stacking/blending构建多层模型,并利用预测结果在拟合预测      3.boosting/bagging(xgboo

2021-03-24 10:12:57 954

原创 贝叶斯优化调参

贝叶斯优化 (BayesianOptimization)       机器学习模型和神经网络模型都有很多参数需要调整,有很多超参数需要手动设定,很多时候往往是这些参数决定了一个问题能不能很好的解决,如网络有几层、学习率多大、dropout设置为多少、学习率等等。     穷举搜索 Grid Search 效率太低;随机搜索比穷举搜索好一点;目前比较好的解决方案是贝叶斯优化。贝叶斯算法的优点:贝叶斯调参采用高斯过程,考虑之前的参

2021-03-22 21:26:06 5421

原创 时间序列数据特征提取TsFresh–入门简介

TsFresh学习          最近膜拜大佬写的GitHub学习到了一个时间序列数据特征提取的库-TsFresh,感觉好像挺牛逼的,去B站大学找了一下想找点资料学一学,尴尬的是…发挥一下主观能动性,网上找了一下还好有官方文档! 英文的Introduction    官方文档第一句话就是说TsFresh是---------Tsfresh is used to to extract character

2021-03-16 17:14:41 6224 26

原创 天池-心跳信号分类预测 Day1

天池-零基础数据挖掘第一次参加天池的比赛,也是抢了好几次才抢到datawhale的学习名额,太难抢了。今天花了大概一天的时间去理解题目的意思和将baseline代码跑通,最开始在天池的平台上面运行,但总是有各种问题,后来就在自己的电脑上面尝试着调了一下baseline的代码。demo中用的是lightgbm,好像也没做什么调参,调用了一下api,并进行了5折交叉验证。不过怎么生成每个类别概率的没看懂代码再写的。最近在准备开题,论文中用到了xgboost+lr,用来预测煤矿顶板含水层富水性的,准备将这个框

2021-03-15 16:11:12 623

原创 决策树算法

     决策树算法是一种基于规则的方法,用一组嵌套的规则进行预测,在树的每个决策节点处根据判断结果进入到下一个分支,反复执行这种操作直到叶子结点,得到预测结果,这些规则的是算法通过数据学习到的而不是人为指定。    选用周志华老师的西瓜书中的西瓜数据作为实验数据。除了最后一列数据是西瓜的特征(label数据),色泽、根蒂、敲声和纹理都是特征(feature)。递归分裂过程决策树的建立是一个递归的过程,首先创立根节点,然后递归的建立左右

2021-03-09 17:37:06 238

原创 二叉树的层序遍历

二叉树的层序遍历二叉树的层序遍历跟前中后序遍历有点不一样,层序遍历是一层一层的遍历,用到的数据结构不是栈而是队列。vector<vector<int>> levelOrder(TreeNode* root) { queue<TreeNode*>que; vector<vector<int>>result; //定义的二维数组用来存放每一层遍历的结果 if(root!=NULL)que.push(

2021-02-21 08:11:57 142 1

原创 二叉树的遍历方式

二叉树的遍历方式前序遍历递归:递归函数最重要的三个部分:1 :递归函数的传参2:递归函数的出口 什么时候结束3:递归函数的内层逻辑是啥void pre(TreeNode *root,vector<int>&vec){ if(root==NULL)return ; // 递归函数的出口 如果此时节点指针为空 则返回 vec.push_back(root->val); // 把当前节点的值放进结果数组中 pre(r

2021-02-20 23:03:26 114 1

原创 动态规划LeetCode

动态规划题目总结近日做了一些LeetCode中的动态规划的题目,可以做个总结了!1:322.零钱兑换2:121.买卖股票最佳时机I3:122.买卖股票的最佳时机II4:面试题08.01三步问题5:70.爬楼梯6:746.使用最小路径爬楼梯7:343.整数拆分8:62.不同路径9:63.不同路径II322.零钱兑换该题显然是可以用动态规划去做的。不明白的可以看看这篇文章。里面列出了哪些情况是可以用动态规划去做。动态规划的做题步奏如下 1:*确定dp矩阵*,并明确dp[i]或者其他

2021-02-03 23:17:50 130 1

原创 动态规划拙见

动态规划刷题也有好几个月了,但一直都是沉醉于数组和字符串这些入门的知识点,这假期准备好好啃一些知名的算法了动态规划作为科技公司基本上必考的知识点,在刷题网站中占有很大的比重,很多的题目都可以用动态规划去做。今天就来捋一捋dynamic program。什么是动态规划先来个例题:问总共有多少种方法可以走到右下角? 如果想用动态规划解题,首先要先明确什么样类型的题目适合用动态规划去做,毕竟面试时 候,面试官不可能说:来用动态规划给我解这道题。动态规划题目特点 **1**:计数

2021-01-24 00:01:20 4355 5

原创 LeetCode 448 找到数组中消失的数字

LeetCode448题题目描述:给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:[4,3,2,7,8,2,3,1]输出:[5,6]题解:...

2020-12-29 20:26:38 132

原创 二维数组的查找

剑指offer刷题笔记二维数组的查找JZ2题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序, 每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数, 判断数组中是否含有该整数。样例输入:7,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]输出:True题解思路:**直接暴力解法,数组问题好像没有什么是for循环解决不了的,如果有,那就再嵌套一个循环。**def fi

2020-12-28 16:53:58 298

原创 剑指offer-斐波那契数列

刷题笔记 不知不觉中走到了研二,恍惚之间好像还记得研一入学的场景,提着拉杆箱去学院帐篷那里报到,不对 ,应该恍惚之间还记得本科时候入学场景,提着拉杆箱去学院帐篷那里报到。哎,那么多年过去了 ,感觉还是碌碌无为。 准备一下来年的春招吧,重拾一下数据结构和算法。准备刷题,LeetCode和剑指offer,这里就当是个笔记本吧!剑指offerJZ7添加链接描述给定一个正整数n,问第n个斐波那契数列是多少(第0个是0,第一个是1)?首先斐波那契数列的定义是f(n+1)=f(n)+f(n−1),生成第

2020-12-28 12:46:25 205 2

空空如也

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

TA关注的人

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