学习
百步送剑
很懒, 懒得介绍!
展开
-
素筛:求小于N的素数
用素筛求小于N的素数原创 2022-09-24 22:00:02 · 182 阅读 · 1 评论 -
五种I/O模型
五种I/O模型原创 2022-09-06 13:08:20 · 105 阅读 · 0 评论 -
KMP:字符串匹配算法
KMP字符串匹配算法,带prefix数组的求解和匹配机制图解原创 2022-06-06 23:21:43 · 77 阅读 · 0 评论 -
C++:常量指针和指针常量
一、 常量指针int a = 10;int b = 20;const int *p = &a;//指针指向可变p = &b;//指针所指的值不可变// *p = 1; can'tint * const p;// 指针指向不可变// p = &b; can't//指针的所指的值可变*p = 1;指针的指向可变, 指针所指的值不可变指针常量** 指针的指向不可变, 指针所指的值可变 **...原创 2022-03-11 19:58:58 · 789 阅读 · 0 评论 -
gcc编译全过程
gcc编译全过程gcc test.c -E -o test.i #预处理gcc test.i -S -o test.s #转变为汇编语言gcc test.s -s -o test.o # 转变为二进制可执行文件原创 2021-11-10 15:43:31 · 57 阅读 · 0 评论 -
C++:unordered_set的count
C++:unordered_set的count用法unordered_set_name.count(element) 参数此函数接受单个参数element 。表示容器中是否存在需要检查的元素。返回值如果元素存在于容器中,则此函数返回1,否则返回0。示例#include <iostream> #include <unordered_set> using namespace std; int main() { unordered_s原创 2021-10-15 18:53:06 · 6089 阅读 · 0 评论 -
C++:queue 详解
C++:queue 详解详细用法:定义一个queue的变量 queue M查看是否为空范例 M.empty() 是的话返回1,不是返回0;从已有元素后面增加元素 M.push()输出现有元素的个数 M.size()显示第一个元素 M.front()显示最后一个元素 M.back()清除第一个元素 M.pop()注: 进的一端为头 出的一端为尾。 即头进尾出代码演示#include <ios原创 2021-09-01 10:43:19 · 421 阅读 · 0 评论 -
n皇后-回溯法全解
n皇后恶心的n皇后,回溯法没啥好说的#include <iostream>#include <vector>#include <string>using namespace std;class Solution {public: //放入(x,y)之后标记不能放的位置 void putQueen(int x, int y, vector<vector<int >>& attack){ //8原创 2021-08-25 19:30:31 · 94 阅读 · 0 评论 -
Linux_c:多线程之读写锁
读写锁概念读写锁与互斥量类似,不过读写锁有更高的并行性。互斥量要么加锁要么不加锁,而且同一时刻只允许一个线程对其加锁。对于一个变量的读取,完全可以让多个线程同时进行操作。pthread_rwlock_t nwlock读写锁有三种状态,读模式下加锁,写模式下加锁,不加锁。一次只有一个线程可以占有写模式下的读写锁,但是多个线程可以同时占有读模式的读写锁。读写锁在写加锁状态时,在它被解锁之前,所有试图对这个锁加锁的线程都会阻塞。读写锁在读加锁状态时,所有试图以读模式对其加锁的线程都会获得访问权,但是如原创 2021-08-12 14:28:33 · 862 阅读 · 0 评论 -
线程同步 -mutex
线程同步 - 1互斥量为什么要使用互斥量当多个线程共享相同的内存时,需要每一个线程看到相同的视图。当一个线程修改变里时,而其他线程也可以读取或者修改这个变里,就需爰对这些线程同步,确保他们不会访问到无效的变量。在变里候改时间多于一个存储器访问周期的处理器结构中,当存储器的读和写这两个周期交叉时,这种潜在的不一致性就会出现·当然这与处理器相关,但是在可移植的程序中并不能对处理器做出任何假设。相关例子两个线程同时修改一个变量代码#include <stdio.h>#include原创 2021-08-11 15:52:39 · 76 阅读 · 0 评论 -
Linux-c,Signal相关
Linux-c,Signal相关代码#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <signal.h> void *thread_func(void *arg){ printf("I am new thread\n"); return (void *)0;}int m原创 2021-08-11 14:09:07 · 190 阅读 · 0 评论 -
thread_join
thread_join代码#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <pthread.h>#include <string.h>void *thread_func01(void *arg){ printf("I am thread_01\n"); return (void *)1;}void *thre原创 2021-08-10 14:59:01 · 168 阅读 · 0 评论 -
Linux-c 线程相关
Linux-c 线程相关关于pthread_exit结论如果主线程使用 pthread_exit(rval) 那么主线程会等待所有的线程结束后才结束代码#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <pthread.h>#include <string.h>struct student{ int age;原创 2021-08-09 21:41:08 · 51 阅读 · 0 评论 -
Linux:C-线程创建
线程创建1,代码项目名:pthread_create.c#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <pthread.h>/* getpid 获取进程ID pthread_self 获取线程ID int pthread_create(pthread_t *thread,原创 2021-08-09 18:11:23 · 714 阅读 · 0 评论 -
dp-最长公共子序列
最长公共子序列题目描述给定两个字符串str1和str2,输出两个字符串的最长公共子序列。如果最长公共子序列为空,则返回"-1"。目前给出的数据,仅仅会存在一个最长的公共子序列示例1输入:"1A2C3D4B56","B1D23A456A"返回值:"123456"示例2输入:"abc","def"返回值:"-1"题目分析动态方程:if(s1[i-1] == s2[j-1]) dp[i][j] = dp[i-1][j-1] + 1;else dp[i][j原创 2021-07-19 10:19:01 · 51 阅读 · 0 评论 -
虚拟机上Nessus安装及基本使用
虚拟机上Nessus安装一,下载NessusNessus可以去官网下载,社区版免费。这里就不在介绍如何下载。下载的文件分为 .mf;.ovf;以及.vmdk三个文件。二,Nessus环境安装配置1, 导入.ovf文件VMware创建新的虚拟机时, 在安装程序光盘映像文件时导入.ovf文件。2, 配置静态网络配置静态网络可以使虚拟机的ip不变。在后续中便于操作。具体操作:vim /etc/netplan/50-cloud-init.yaml修改ens33的地址然后:netplan原创 2021-07-06 10:04:56 · 2215 阅读 · 0 评论 -
mysql - limit和order by 使用
mysql - limit和order by 使用1,使用的位置SELECT select_list [ INTO new_table ] FROM table_source [ WHERE search_condition ] [ GROUP BY group_by_expression ] [ HAVING search_condition ] [ ORDER BY order_expression [ ASC | DESC ] ] [LIMIT a,b]可以看到:or原创 2021-06-30 11:22:27 · 6125 阅读 · 0 评论 -
深度学习常见算法伪码
反向传播算法反向传播算法的三步骤(1) 前馈计算每一层的净输入???? (????) 和激活值???? (????),直到最后一层;(2) 反向传播计算每一层的误差项???? (????);(3) 计算每一层参数的偏导数,并更新参数.算法伪码输入: 训练集???? = {(????(????), ????(????))}???? ????=1,验证集????,学习率????, 正则化系数????,网络层 数????,神经元数量???????? , 1 ≤ ???? ≤ ????.1 随机原创 2021-06-28 11:52:50 · 4223 阅读 · 0 评论 -
深度学习常见的两类激活函数
深度学习常见的两类激活函数0, 激活函数激活函数在神经元中非常重要的.为了增强网络的表示能力和学习 能力,激活函数需要具备以下几点性质:(1) 连续并可导(允许少数点上不可导)的非线性函数.可导的激活函数 可以直接利用数值优化的方法来学习网络参数.(2) 激活函数及其导函数要尽可能的简单,有利于提高网络计算效率.(3) 激活函数的导函数的值域要在一个合适的区间内,不能太大也不能太 小,否则会影响训练的效率和稳定性. 下面介绍几种在神经网络中常用的激活函数.1, sigmoi原创 2021-06-27 21:00:14 · 502 阅读 · 0 评论 -
正则表达式学习
正则表达式学习前言感觉这玩意儿一直都有用到,但是总是半知半解,所以今天一探究竟一,正则表达式是个啥正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。二,学习环境练习环境三, 匹配任意字符直接用想目的字符匹配. 代表匹配任意字符如果想匹配 . 用:\.四, 匹配子母河数字\w: 匹配字母和数字\W:匹配原创 2021-06-07 12:37:43 · 47 阅读 · 0 评论 -
redis学习
redis学习一,redis是个啥REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列原创 2021-06-06 00:10:36 · 124 阅读 · 2 评论