学习笔记
xxxywu
这个作者很懒,什么都没留下…
展开
-
算法学习 --递归算法学习
文章目录1 .简介2.从递归的经典示例开始计算阶乘斐波纳契数列3.递归程序的基本步骤4.使用归纳定义链表求和示例汉诺塔问题5.将循环转化为递归6.尾递归介绍7.递归算法转换成非递归算法reference计算机科学的新学生通常难以理解递归程序设计的概念。递归思想之所以困难,原因在于它非常像是循环推理(circular reasoning)。它也不是一个直观的过程;当我们指挥别人做事的时候,我们极少会递归地指挥他们。1 .简介递归算法是一种直接或者间接调用自身函数或者方法的算法。递归算法的实质是把问题原创 2020-08-25 14:59:18 · 654 阅读 · 0 评论 -
TCP粘包/拆包问题的分析与解决
文章目录1.TCP粘包/拆包问题1.1 TCP粘包/拆包问题说明1.2 TCP粘包/拆包发生的原因2.未考虑TCP粘包导致功能异常案例2.1 示例2.2 TCP粘包处理无论是服务端还是客户端,当我们读取或者发送消息的时候,都需要考虑TCP底层的粘包/拆包机制。1.TCP粘包/拆包问题TCP是个“流”协议,所谓流,就是没有界限的一串数据。大家可以想想河里的流水,是连成一片的,其间并没有分界线。TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完转载 2020-08-07 15:54:20 · 497 阅读 · 0 评论 -
cURLpp使用及学习
1.Global Preparation该程序必须全局初始化某些cURLpp功能。那意味着无论您打算使用多少次,都应该只完成一次初始化。在您的程序的整个生命周期中一次。这是通过使用cURLpp :: initialize(long flags= cURLpp :: CURL_GLOBAL_ALL)它采用一个参数,该参数是一种位模式,可以告诉cURLpp初始化。有关更多详细信息,请参见curl_global_init的手册页。当程序不再使用cURLpp时,应调用cURLpp :: terminat原创 2020-08-10 10:13:06 · 2582 阅读 · 0 评论 -
CMAKE查找库:find_package和pkg_check_moduls的区别
本文介绍 CMake 中两种查找库的方式:find_package 以及 pkg_check_modules 的用法与区别。find_package如果编译软件使用了外部库,事先并不知道它的头文件和链接库的位置,得在编译和链接命令中加上包含它们的查找路径,CMake 使用 find_package 命令来解决这个问题。FIND_PACKAGE( <name> [version] [EXACT] [QUIET] [NO_MODULE] [ [ REQUIRED | COMPONENTS ]原创 2020-07-06 17:51:26 · 4623 阅读 · 0 评论 -
Linux下core dump及valgrind学习
在linux下开发时,如果程序突然崩溃了,也没有任何日志。这时可以查看core文件。从core文件中分析原因,通过gdb看出程序挂在哪里,分析前后的变量,找出问题的原因。原创 2020-07-01 20:19:41 · 1722 阅读 · 1 评论 -
ubuntu18.04 openssh客户端和服务端 安装及配置
openssl客户端和服务器SSH分客户端openssh-client和openssh-server如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudoapt-get install openssh-client),如果要使本机开放SSH服务就需要安装openssh-server。1 openSSH客户端的安装与配置Ubun...原创 2020-03-16 13:00:30 · 6079 阅读 · 1 评论 -
Linux_文件系统_VFS
1 引言Linux 中允许众多不同的文件系统共存,如 ext2, ext3, vfat 等。通过使用同一套文件 I/O 系统调用即可对 Linux 中的任意文件进行操作而无需考虑其所在的具体文件系统格式;更进一步,对文件的操作可以跨文件系统而执行。如图 1 所示,我们可以使用 cp 命令从 vfat 文件系统格式的硬盘拷贝数据到 ext3 文件系统格式的硬盘;而这样的操作涉及到两个不同的文件系统。图 1. 跨文件系统的文件操作“一切皆是文件”是 Unix/Linux 的基本哲学之一。不仅普通的文件,原创 2020-06-17 15:23:31 · 249 阅读 · 0 评论 -
HTTP协议学习
1 URL详解URL(Uniform Resource Locator) 地址用于描述一个网络上的资源, 基本格式如下schema://host[:port#]/path/.../[;url-params][?query-string][#anchor]scheme 指定底层使用的协议(例如:http, https, ftp)host HTTP 服务器的 IP 地址或...原创 2020-06-17 13:57:53 · 196 阅读 · 0 评论 -
pandas使用
1. IO toolspandas I/O API是一组顶级读写函数,访问方式如下:pandas.read_csv通常返回pandas对象的。相应的writer函数是对象方法,类似于DataFrame.to_csv(). 下面是一个包含可用读写器的表。:text_files1.1 read_csv()pd.read_csv(input_asc_file,skiprows=lambda x:x in range(7),encoding="gbk",engine='python',sep=' ',de原创 2020-06-17 13:56:44 · 465 阅读 · 0 评论 -
libcurl API 常用函数
libcurl详参libcurl1 curl_easy_getinfoCURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ... );使用此函数从curl会话请求内部信息。第三个参数必须是指向long的指针、指向char*的指针、指向struct curl_slist*的指针或指向double的指针(本文档将进一步介绍)。指向的数...原创 2020-03-24 20:43:34 · 1638 阅读 · 0 评论 -
传值与传引用(传址)的区别
C++为了保持和c语言的兼容,一般的简单数据传递还是使用值传递,但对于大块的数据(数组、字符串、结构、类等),基本上是引用形式传递的。值传递的缺点:每次调用函数时,需要把数据拷贝一份,耗损内存资源。传引用的缺点:节省了内存和复制数据的时间,但安全性较差,难以保证线程安全。用传引用给const取代传值。典型情况下更高效而且可以避免切断问题(实现不了多态?)这条规则不适用于内...原创 2020-03-19 17:26:19 · 802 阅读 · 0 评论 -
shell脚本的写法(1)
1.shell脚本头,#!/bin/sh与#!/bin/bash的区别.参考:https://www.cnblogs.com/jonnyan/p/8798364.html#!/bin/sh是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面跟的是此解释此脚本的shell的路径。$ cat /etc/shells可以查看系统支持的shell格式其实第一句的#!是对脚本的解释...转载 2019-11-08 15:17:11 · 1389 阅读 · 0 评论 -
protobuf 2学习手册
1 关于protobuf及安装protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。你可以定义数据的结构,然后使用特殊生成的源代码轻松的在各种...转载 2019-11-18 15:42:47 · 569 阅读 · 0 评论 -
ubuntu18.04 systemd配置学习手册(2) --具体使用
转载:http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html1 开机启动对于那些支持 Systemd 的软件,安装的时候,会自动在/usr/lib/systemd/system目录添加一个配置文件。如果你想让该软件开机启动,就执行下面的命令(以httpd.service为例)。sudo systemctl ...转载 2019-11-13 16:46:55 · 1747 阅读 · 0 评论 -
ubuntu18.04 systemd配置学习手册(1) --相关概念
1 从init系统说起Linux 操作系统的启动首先从 BIOS 开始,接下来进入 boot loader,由 bootloader 载入内核,进行内核初始化。内核初始化的最后一步就是启动 PID 为 1 的 init 进程。这个进程是系统的第一个进程。它负责产生其他所有的用户进程。init 进程以守护进程(也就是服务)的方式存在,是所有其他进程的祖先。init 进程非常独特,能够完成其他进程无...转载 2019-11-13 16:08:30 · 1932 阅读 · 0 评论