char

Bloom Filter 原理及实现

≯℡__Kan透↙ 提交于 2020-02-24 13:05:39
题外话: 很久没写博客了,因为前一段时间过年在家放假,又因为自己保研了,所以一直比较闲。整个假期,基本都在准备毕业设计的相关内容。我毕业设计的方向是关于搜索引擎的,因此,期间阅读了大量相关论文。阅读了很多论文和技术书籍之后,我有几点感触。首先,发现国内很多论文或是书籍只是大量引述其他人的研究结果,自己的独特的见解非常少,一篇文章,70%的内容都是在以介绍为主,感觉发这样的论文是没有什么意义的。相反,国外尤其是像MIT,斯坦福,google之类的领域专家发表很多极其优秀的论文,阅读后给人一种震撼。我之前在网上搜索技术文章或是论文的时候经常绕过英文的,现在发现国外的确有非常多优秀的外文文章,所以无障碍英文阅读能力是提升自己专业水平的重要因素。 我现在已经逐渐习惯阅读外文文章和书籍。 期间,我还翻译了一篇关于网络信息采集和索引的外文文章,收获很大。不是因为,我从中获得了多少知识,而是在翻译的过程中,我了解了作者精心的设计思路以及严谨的语言表达,也锻炼了我翻译的能力以及组织语言的能力。 废话不多说了,开始正题,写个在爬虫系统中常用的URL去重经典算法Bloom Filter. 正题: Bloom Filter概念和原理 引用一篇讲述非常好的文章。 http://blog.csdn.net/jiaomeng/article/details/1495500 ,其博客里还有很多关于Bloom

Convert Binary Array to Char Java

蓝咒 提交于 2020-02-24 12:09:11
问题 I have this binary array: int[] bitArray = { 0,1,0,1,0,1,0,0,0,1,1,0,1,0,0,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,1,1,0,0,1,1, 0,1,1,1,0,1,0,1,0,1,1,0,1,1,1,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,0,1,0,1,1,1,0,0,1,1, 0,0,1,0,0,0,0,0,0,1,1,0,1,0,0,1,0,1,1,0,1,1,1,0,0,0,1,0,0,0,0,0,0,1,1,1,0,1,0,0, 0,1,1,0,1,0,0,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,1,1,0,0,1,1,0,1,1,0,1,0,1,1, 0,1,1,1,1,0,0,1,}; It makes the phrase: The sun is in the sky How would you convert the int binary array to a char ? 回答1: Every

Convert Binary Array to Char Java

ぃ、小莉子 提交于 2020-02-24 12:07:11
问题 I have this binary array: int[] bitArray = { 0,1,0,1,0,1,0,0,0,1,1,0,1,0,0,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,1,1,0,0,1,1, 0,1,1,1,0,1,0,1,0,1,1,0,1,1,1,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,0,1,0,1,1,1,0,0,1,1, 0,0,1,0,0,0,0,0,0,1,1,0,1,0,0,1,0,1,1,0,1,1,1,0,0,0,1,0,0,0,0,0,0,1,1,1,0,1,0,0, 0,1,1,0,1,0,0,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,1,1,0,0,1,1,0,1,1,0,1,0,1,1, 0,1,1,1,1,0,0,1,}; It makes the phrase: The sun is in the sky How would you convert the int binary array to a char ? 回答1: Every

Loadrunner中对中文进行UTF-8转码

余生长醉 提交于 2020-02-24 08:36:59
这是一个 HTTP 接口 测试 中经常会碰到的问题,目前的服务器采用的都是UTF-8编码方式,而我们的客户机 Windows 系统一般默认采用的编码方式是GBK,这正是我们采用录制方式的时候会发现许多中文 乱码 的原因。 Loadrunner 录制的时候可以通过在Virtual User Gen的Tools->Recoding Options -> Advanced -> Support charset -> UTF-8的设置规避(其实也只是部分规避),下面我们讨论在手写测试脚本时如何解决UTF-8转码的问题。 实践一:在脚本中直接采用中文明文进行请求 web_custom_request("web_custom_request", "URL=http://172.16.4.191/list?id=环球影院", "Method=GET", "TargetFrame=", "Resource=0", "Referer=", "Body=", LAST); 结果:服务端返回404错误,找不到相应的资源id,明显服务端不能正确响应非UTF8编码方式的请求。 实践二: 为解决这个问题,最关键的是要把本地GBK编码的汉字转换成UTF-8编码格式的信息,为此我们引进loadrunner自带的编码函数 lr_convert_string_encoding lr_convert_string

string::back

天涯浪子 提交于 2020-02-24 04:58:23
char& back(); const char& back() const; #include <iostream> #include <string> using namespace std; int main() { string s1("hello"); cout << s1.back() << endl; s1.back() = 'e'; cout << s1 << endl; return 0; } 来源: https://www.cnblogs.com/xpylovely/p/12083224.html

乱码问题

早过忘川 提交于 2020-02-24 03:48:26
我用 loadrunner 录制,脚本里的乱码一直没有解决。看到网上很多贴子。 采用的方法:1、第一步:去lr 的vugen的Tools -> Recoding Options -> Advanced -> Support charset -> UTF-8 选上。 2、新建脚本--->选择协议(Http)-->选项-->高级-->选择“支持字符集”并点选“UTF-8”; 在回放脚本之前:Vuser-->运行时设置-->浏览器-->浏览器仿真-->更改-->使用浏览器-->语言下来选择 “中文(中国)”; 3、采用“首先,我们直接用正常的字去参数化,这里只举其中的一个例子来说明,比如<assuname>这个字段,我们用参数值“汽车”直接在脚本中替换“浣忔埧”,脚本回放失败。 然后就想到会不会是所有的中文字段都需要用才行呢?于是把所有的乱码都用简体字替换,脚本回放还是失败。 通过以上的两点试验,说明直接参数化的方法是行不通的,我们必须另找办法。 在LoadRunner中,为我们提供了一个字符串编码转换的函数lr_convert_string_encoding,用法如下: int lr_convert_string_encoding ( const char *sourceString, const char *fromEncoding, const char *toEncoding,

关于数组和指针作为参数时遇到的问题

≡放荡痞女 提交于 2020-02-23 19:09:04
自己在实现一个类strcpy函数时,发现一些小问题: 首先,函数如下: char *str_n_cpy(char *dest,const char *src) { char *_temp = dest; assert(dest != NULL || src !=NULL); //注意越界 printf("%d",sizeof(dest)); while((*dest++ = *src++) != '\0'); return _temp;}   main函数如下: int main() { char *str1 = "123"; char *str2 = "4567"; printf("%s\n",str_n_cpy(str1,3,str2,3)); return 0; }   运行程序会发现程序崩溃,后来在main函数中把char *str1 = "123"改成char str1[3]={"123"};会发现程序就能正常运行,为什么会这样呢? 经查知,前者实际将str1指向一个常量”123“了,即此时的str1是一个常量指针,其中的内容固然不可改变,所以赋值操作不能进行了;而后者str1实际作为一个普通的char型指针传到函数中,自然可以进行赋值操作。 来源: https://www.cnblogs.com/wangkundentisy/p/4202027.html

【work】判断ip地址是否合法

瘦欲@ 提交于 2020-02-23 15:12:28
题目: 写一个程序输出以下ip列表(21.45.34.112,0.25.132.143,20.268.56.10)是否是合法的ip。(注:ip第一位不能为0,每一位不能超过255) 答案: #import <Foundation/Foundation.h> //创建一个判断iP是否合法的方法 int checkIP(const char* p) { //申明用来存放字符的两个数组,一个是存数字的,一个是存点的 int n[4]; char c[4]; //输入7位数格式的字符串,如果格式不对则返回值为0 if (sscanf(p, "%d%c%d%c%d%c%d", &n[0], &c[0], &n[1], &c[1], &n[2], &c[2], &n[3]) == 7) { //判断第一位是否为0 if (n[0]==0) return 0; //判断每一位是否超过255 int i; for(i = 0; i < 4; ++i) if (n[i] > 255 ) return 0; /*判断点格式是否正确,这部分题中没有要求,所以暂且注释掉 for(i = 0; i < 3; ++i) if (c[i] != '.') return 0;*/ //符合要求则返回值为1 return 1; } else return 0; } int main(int argc, const

C++内存管理转自http://soft.yesky.com/lesson/110/2381610.shtml

拈花ヽ惹草 提交于 2020-02-23 15:04:50
转自 http://soft.yesky.com/lesson/110/2381610.shtml 踏入C++中的雷区——C++内存管理详解 2006-04-25 09:22 作者:蒋涛 出处:计算机教学网 责任编辑:方舟   伟大的Bill Gates 曾经失言:   640K ought to be enough for everybody — Bill Gates 1981   程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。    1、内存分配方式   内存分配方式有三种:   (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。   (2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。   (3) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。    2

【C语言】简单片段输入多行

∥☆過路亽.° 提交于 2020-02-23 13:40:43
第一行输入数字:n表示 将输入n行句子 后续每行都输入句子 #include <stdlib.h> #include <stdio.h> #include <string.h> #define SLEN 128 int getStrings(char * str) { int num = 0; char c; do{ scanf("%c", &c); str[ num ++ ] = c; }while(c != '\n' && num < SLEN); str[num - 1] = '\0'; return num - 1; } int main(int argc, char ** argv) { int i = 0, j = 0; int num = 0; char **pStr; char tmp[SLEN] ; char cEnt; scanf("%d", &num); //第一行输入num行句子 scanf("%c", &cEnt); //回车键 //分配存储 num行句子的二维数组 pStr = (char **)malloc(num*sizeof(char *)); for(i = 0; i < num ; i++) { pStr[i] = (char *)malloc(SLEN*sizeof(char)); memset(pStr[i], 0, SLEN);