find_end的用法 这里的haystack有两个4,最后一个4应该是在8的位置,为什么查找needle2的时候是3呢,有点不明白,理解的小伙伴给个解答。这里的haystack有两个1,最后一个1应该是在5的位置,所以打印的值为5。
Error: EPERM: operation not permitted, mkdir ‘D:\‘ 这是安装vue-cli时出现的错误,最初由于移动了npm的安装路径,把安装路径从C:/nodejs/node_modules切换到了D盘,导致安装时没有权限的问题。这里参考Error: EPERM: operation not permitted, mkdir ‘D: 以及https://www.cnblogs.com/yaohe/p/11912547.html 但是本人的C盘用户目录下没有.npmrc文件,最后在Administrator目录下找到,删除,然后用管理员权限安装,ok...
位图 一、定义 位图法就是bitmap的缩写。所谓bitmap,就是用每一位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。在STL中有一个bitset容器,其实就是位图法,引用bitset介绍:Abitset is a special container class that is designed to store bits (elements with only two possible values: 0 or 1,trueorfa...
RAII详解 什么是RAII?RAII是Resource Acquisition Is Initialization(wiki上面翻译成 “资源获取就是初始化”)的简称,是C++语言的一种管理资源、避免泄漏的惯用法。利用的就是C++构造的对象最终会被销毁的原则。RAII的做法是使用一个对象,在其构造时获取对应的资源,在对象生命期内控制对资源的访问,使之始终保持有效,最后在对象析构的时候,释放构造时获取的资源。为什么要使用RAII?上面说到RAII是用来管理资源、避免资源泄漏的方法。那么,用了这么久了,也写了这
C++RTTI详解 RTTI是”Runtime Type Information”的缩写,意思是运行时类型信息,它提供了运行时确定对象类型的方法。RTTI并不是什么新的东西,很早就有了这个技术,但是,在实际应用中使用的比较少而已。而我这里就是对RTTI进行总结,今天我没有用到,并不代表这个东西没用。学无止境,先从typeid函数开始讲起。typeid函数typeid的主要作用就是让用户知道当前的变量是什么类型的,对于内置数据类型以及自定义数据类型都生效,比如以下代码:? 1 2 3
socket 网络编程 1 网络模型1.1IP地址与域名1.2 端口的概念1.3 网络模型图2 Socket入门2.1 什么是Socket2.2 TCP和UDP区别2.3UDP协议样例2.4 TCP2.4.1 TCP报文格式2.4.2 TCP三次握手2.4.3 四次挥手2.4.4 三次握手和四次挥手面试问题2.4.5TCP的滑动窗口机制2.4.6流量控制2.4.7 拥塞控制2.4.8TCP滑动窗口和socket缓冲区之间的关系2.4.9、滑动窗口移...
Shell命名解释器 一、Shell解释器shell解释器,用户和操作系统内核之间的桥梁shell介于操作系统内核与用户之间,负责接收用户输入的操作指令(命令),并运行和解释,将需要执行的操作传递给操作系统内核并执行shell程序在系统中充当了一个”命令解释“的角色如:Windows中的cmd.exe类似这个角色,不过接收的是DOS命令二、Linux中的shell2.1、Shell常见种类Bsh:由贝尔实验室编写。Bsh是产生较早的UNIX Shell程序,实现了最基本的命令解释器的功能,同.
僵尸进程以及处理方式 基本概念: 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程再创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。 孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。 僵尸
进程间通信--双向管道实现 地址链接:https://www.ibm.com/developerworks/cn/linux/l-pipebid/index.htmlLinux 上实现双向进程间通信管道问题和常见方法Linux 提供了 popen 和 pclose 函数 (1),用于创建和关闭管道与另外一个进程进行通信。其接口如下: 1 2 FILE *popen(const char *command, const char *mode); int pclose
hash构造和解决哈希冲突 hash表的实现主要包括构造哈希和处理哈希冲突两个方面:对于构造哈希来说,主要包括直接地址法、平方取中法、除留余数法等。对于处理哈希冲突来说,最常用的处理冲突的方法有开放定址法、再哈希法、链地址法、建立公共溢出区等方法。SGL版本使用链地址法,使用一个链表保持相同散列值的元素。虽然链地址法并不要求哈希桶长度必须为质数,但SGI STL仍然以质数来设计哈希桶长度,并且将28个质数(逐渐呈现大约两倍的关系)计算好,以备随时访问,同时提供一个函数,用来查询在这28个质数之中,“最接近某数并大于某数
老鼠喝药算法 根据2^10=1024,所以10个老鼠可以确定1000个瓶子具体哪个瓶子有毒。具体实现跟3个老鼠确定8个瓶子原理一样。000=0001=1010=2011=3100=4101=5110=6111=7一位表示一个老鼠,0-7表示8个瓶子。也就是分别将1、3、5、7号瓶子的药混起来给老鼠1吃,2、3、6、7号瓶子的药混起来给老鼠2吃,4、5、6、7号瓶子的药混起来给老鼠3吃,哪个老鼠死了,相应的位标为1。如老鼠1死了、老鼠2没死、老鼠3死了,那么就是101=5号瓶子有毒。为什么这样排列呢,