- 博客(22)
- 收藏
- 关注
原创 回溯法--DFS
### 回朔法的思想: 回朔法的重要思想在于: 通过枚举法,对所有可能性进行遍历。 但是枚举的顺序是 一条路走到黑,发现黑之后,退一步,再向前尝试没走过的路。直到所有路都试过。因此回朔法可以简单的理解为: 走不通就退一步的方枚举法就叫回朔法。而这里回退点也叫做回朔点。### 回朔关键点 通过分析发现,回朔法实现的三大技术关键点分别是:一条路走到黑 回退一步 另寻他路### 关键点的实现 那么如何才能用代码实现上述三个关键点呢?for 循环 递归#### 解释如下 for循环的作用
2020-05-10 12:24:16 332
原创 深度搜索之数独
编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法需遵循如下规则:数字1-9在每一行只能出现一次。数字1-9在每一列只能出现一次。数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。空白格用'.'表示。 采用深度搜索的方式,如果非空格就需要进行n+1收拾,如果搜索成功则采用book数组标记,shuo搜索失败需要回退对数独的修改,具体的实现见代码。#include<iostream>#include<string>...
2020-05-08 21:48:25 410
原创 Windows+Linux开发环境搭建(windows作为办公机+Linux作为远程调试机)
假设远程调试机已经安装好Linux系统,办公机已经安装好windows系统。1. 在Windows办公机上安装Source insight 3.5 或者Source insight 4.0 代码查看和编辑软件。2. 在Windows办公机上安装MobaXterm远程连接工具软件。3. 设置Linux调试机的IP地址为静态固定IP地址,Windowsban'办公机与Linux调试机在同一...
2020-05-04 22:09:52 450
原创 C++实现噪声传播
题目: [音源所在行,列,噪声值]的xing形式ji记录在二维数组中。 噪音沿相邻的八个方向传播,在传播的过程中,噪音值(单位为fe分贝)逐级递减1分贝,直至削弱到1(即噪音源覆盖区域边缘噪音分贝为1); 若同一格被多个噪音覆盖,监测结果不叠加,仅保留较大的噪音值(噪音源所在的格也可能被其他噪音源的噪音传播覆盖)。 所在有噪音源且持续传播情况稳定...
2020-04-25 18:07:41 1068
原创 守护进程
int daemon(int nochdir, int noclose); //第一参数表示是否保持当前目录,第二个参数表示是否保持当前终端,一般都用0. 自己实现守护进程: 1. fork()后结束父进程 2. 关闭终端相关的3个文件 3. 重新设置当前目录 ...
2019-08-26 21:33:29 163
原创 进程间通信方式
进程间通信Inter-Process Communication,IPC 1)匿名管道 int pipe(int fd[2]); 产生一个管道,两端各自用一个文件描述符表示,其中读端的文件描述符保存在fd[0]中,写端的文件描述符保存在fd[1]中。 只能用于父子进程间通信。在两个进程中只保留个描述...
2019-08-26 21:32:55 273
原创 linux下信号使用
信号singal: 信号是一种软中断,在程序中每个信号用一个整数表示,为了记忆每个信号都有一个宏定义。 SIGKILL 9 进程终止信号 SIGSTOP 进程停止信号 SIGCONT 进程继续执行信号 ...
2019-08-26 21:30:35 214
原创 linux unix 进程相关函数
getgpid(int); //获取当前进程的进程组id setsid(); //自己成立一个进程组 int atexit(void (*function)(void)); //登记程序正常结束时调用的函数(没有参数),如果有多份登记函数,按登记相反的顺序自动执行登记函数。 int on_exit(void (*function)...
2019-08-26 21:27:42 379
原创 linux文件系统的处理函数
文件系统 通用:rename(原路径名,新路径名); 修改文件名 remove(路径名); 删除文件或路径 symlink(原路径名,符号链接名); 建立文件或路径的软链接 access(路径名,权限); 权限:F_OK(是否存在) R_OK W_OK X_OK 的任意组合...
2019-08-26 21:24:05 427
原创 linux下,函数执行错误打印
extern int errno; //头文件<errno.h> char *strerror(int errnum); //errno 转换成对应的错误提示 <string.h> perror(char * str); //打印附加提示信息以及当前错误信息字符串 <stdio.h>...
2019-08-26 21:22:22 492
原创 进程的内存分段使用
每个进程都有自己独立的4G内存。进程访问数据时,使用的是虚拟内存地址,由操作系统将虚拟地址映射到物理地址。 操作系统为每个进程建立一个从虚拟地址到物理地址的一个映射表。操作系统以“页”为单位进行内存的映射,所以映射表也称为页表。 一页的大小可以通过getpagesize()获得。头文件<unistd.h> 一般来说,两个...
2019-08-26 21:21:12 503
原创 Linux下访问环境变量
env/set int main(int argc, char *argv, char *env);env是一个字符串(char *)数组,每个元素是一个环境变量的字符串。 env没有个数,是通过一个值为NULL元素表示结束的。 如果main函数没有env参数,可以使用全局变量environ,他是环境变量的字符串数组,和env一样。但是需要在使用之前...
2019-08-26 21:19:19 296
原创 动态库的加载和执行
void *ldopen(const char* filepath, int flag);打开动态库文件,返回一个指针作为句柄handle,失败返回NULL. flag标志取值RTLD_NOW表示立即加载到内存,RTLD_LAZY表示在使用时加载。 char *lderror(void);取得一个字符串描述动态库出错信息。 vo...
2019-08-26 21:18:06 823
原创 常用工具命令,具体怎么使用可以再百度,本文主要总结
工具命令: nm 显示目标文件中的符号(名字)清单 ldconfig 把动态库放入缓存中。系统启动会自动执行。 ldd 查看一个可执行文件依赖哪些动态库 strip 去掉目标中的冗余信息,一般是调试相关信息。 objdump 显示目标文件(二进制)的附加信息。 wc 用了统计:-l统计行...
2019-08-26 21:17:16 156
原创 ubuntu 下安装mysql 遇到 Could not resolve 'cn.archive.ubuntu.com
参考如下链接:https://www.cnblogs.com/hhzblogs/p/9729498.htmlsudo apt-get install 遇到不可用的网址时:Err:1 http://cn.archive.ubuntu.com/ubuntu bionic InRelease Could not resolve 'cn.archive.ubuntu.com'Err:2 ...
2019-08-21 21:23:38 2638
原创 静态库和动态库的区别和使用
静态库在编译链接是就把库里头的代码提取出来放到可执行文件中,程序的执行不在依赖库。 动态库在编译链接时只记录要用的名字在哪个库文件中,运行时才从库文件中查找这个名字(函数或着变量)并访问它。 之间的区别:生成可执行文件大小、可执行文件执行速度、库生效方式(1)静态库 libxxx.a 1)生成静态库 写的C语言程序不应该有main函数 ...
2019-05-16 21:31:16 726
原创 C++实现四则运算
表达式计算思路: 1)准备两个栈,一个数据栈,一个运算符栈。 反复读取表达式:(2、3、4) 2)如果是数,入数栈。 3)如果是左括号,入运算符栈。如果是右括号,反复从运算符栈顶取运算符合从数据栈中取两个数据进行计算,并把运算结果入数据栈,直到遇到栈顶或左括号为止。 4)如果是运算符,先跟栈顶的运算符比,只要不高于栈顶yo...
2019-05-07 21:45:10 13238 5
翻译 利用soket 创建已经简单的聊天室程序
#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include<pthread.h>#include<unistd.h>#include<stdio.h>#include<string.h>#include<c...
2019-04-22 23:14:06 314
原创 Could not resolve host: github.com 解决办法
1、打开终端,输入:ping github.com 发现ping不通2、直接修改/etc/hosts文件,windows系统应该也一样,直接修改host文件即可,在底部添加:192.30.253.112 github.com...
2019-03-06 23:16:48 19312
原创 git版本控制管理笔记
安装Git: sudo yum install git sudo apt-get install git git-doc gitweb git-gui gitk git-email git-svn git init //创建一个空的git版本管理库 git add file //将file 添加到版本库中 git status //显示文件...
2018-12-13 22:05:55 338
原创 ubuntu18 下设置静态ip地址
修改系统/etc/network/interfaces 文件如下:# interfaces(5) file used by ifup(8) and ifdown(8)auto loiface lo inet loopbackauto ens33iface ens33 inet static address 192.168.6.100 #ip地址netmask 255.2...
2018-10-01 22:17:01 2171
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人