日常工作中经常会遇到哈希算法,出于好奇想多了解一些关于哈希的理论。
在Ceph中(一种分布式存储系统),从Object到PG的映射就是采用了一种哈希算法,名为“rjenkins”。所以就是从这里作为切入点,看了一些资料。
string类型使用小结
c++在c的char类型基础上引入了string类,从而更加方便地对字符串进行操作。但是如果是不会使用string类也会带来很多麻烦。在自己编码的基础上总结了几点误区。
1、char*类型与string类型的相互转换
从char*到string,需要调用string类的构造函数
如:char* a; string s(a);
从string到char*,需要使用string类的c_str()函数
如:string s = “hello”, const char* c = s.c_str();
Huffman编码与Morse编码
最近做课程设计,接触到了Huffman编码与Morse编码。在此总结,分享。之前认为编码是个很神奇的存在,现在能够用代码实现,感觉还是很开心的!
一、Huffman编码
1、概念(摘自wikipedia)
霍夫曼编码(Huffman Coding)是一种编码方式,是一种用于无损数据压缩的熵编码(权编码)演算法。也称“哈夫曼编码”,“赫夫曼编码”。1952年,David A. Huffman在麻省理工攻读博士时所发明的,并发表于《一种构建极小多馀编码的方法》(A Method for the Construction of Minimum-Redundancy Codes)一文。
在计算机资料处理中,霍夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编码表是通过一种评估来源符号出现机率的方法得到的,出现机率高的字母使用较短的编码,反之出现机率低的则使用较长的编码,这便使编码之后的字符串的平均长度、期望值降低,从而达到无损压缩数据的目的。
strcpy与memcpy的实现
因为之前面试的时候遇见这样的题,今天又遇到了,才想起来,所以拿出来总结一下。
1 | //strcpy不合格实现 |
考虑特殊情况:
1 | char a[] = "abc"; |
这时程序会崩溃!!
linux网络连接问题解决
#Linux网络连接问题解决
因为linux网络编程实验需要,需要对linux虚拟机进行联网。但是其中遇到了各种问题,尝试了很多解决方法。拿出来总结、分享一下。
1、基本指令与配置:
ifconfig 查看网卡信息
route -n 显示现在所有路由
ping IP地址(或者域名) 测试网络连接状况
sudo /etc/init.d/network restart 重启网络
网关配置:增加网关
前提是网关出现在route -n 的结果中,否则报错,进程不存在
sudo route add default gw 169.254.0.1
dns服务器配置
/etc/resolv.conf
dns生效优先级配置
dns 与 files(指/etc/hosts)顺序,让dns在前面的优先生效
grep hosts /etc/nsswitch.conf
/etc/nsswitch.conf
/etc/hosts