C/C++语言
文章平均质量分 73
lotluck
我会成为你的眼睛,为你看清未来
展开
-
记录一次采坑--如何处理Linux动态库同名函数?
一、背景介绍需求描述:业务提供一个鉴权的静态库,我只需要从url 和 参数中提取相应的参数传给业务的静态库,将静态库的处理结果直接返回给业务(return < 0, 直接返回403)。但是最近业务反馈,请求部分url直接返回Error:-1015错误,不符合预期。二、分析过程业务刚开始反馈问题,我的第一反应:怎么可能是我的问题,我就仅仅写了一个so(暂时命名1.so),直接调用了你...原创 2019-07-26 20:40:55 · 1974 阅读 · 0 评论 -
蓝桥杯之K好数
如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007取模后的值。输入格式输入包含两个正整数,K和L。+输出格式输出一个整数,表示答案对1000000007取模后的值。原创 2015-03-25 01:46:50 · 2569 阅读 · 0 评论 -
将二维数组那样输出
二维数组a[][3]={{1,2},{1,3},{1,2,3},{2,4}}输出为:111211141122112411321134131213141322.........原创 2014-10-27 23:56:29 · 1435 阅读 · 0 评论 -
埃拉托斯特尼 之 超出范围100000000
埃拉托斯特尼筛法,简称埃氏筛或爱氏筛,是一种由埃及数学家埃拉托斯特尼所提出的一种简单检定素数的算法。要得到自然数n以内的全部素数,必须把不大于根号n的所有素数的倍数剔除,剩下的就是素数。原创 2014-11-03 20:15:06 · 1060 阅读 · 0 评论 -
输出好看的图形
哎,呵呵,反正嘛,也就是那样子了,因为到了大学吗原创 2014-11-13 01:20:45 · 1186 阅读 · 0 评论 -
判断回文数
其实,这个回文数是没有难度的,这次原创 2014-11-14 13:02:57 · 1996 阅读 · 0 评论 -
星期几
今天下午弄了就弄了一个日历,有时候真的要放弃,坚持下去得不到还是得不到,还不如来点实际的,现实一点比较好吧,今天上午蓝桥杯校内选拔赛,自己虽然没怎么练习,自我感觉良好,人生的三大错觉,哈哈。。。每个人都会经历所谓的成熟,我认为这只不过是时间的问题,在经过现实的磕磕碰碰之后,慢慢的自己也就。。。。 进入代码区,废话真多。。。 #include /* run原创 2014-11-29 17:00:17 · 1690 阅读 · 0 评论 -
计算2和3之间X^x接近10
这个题是蓝桥杯的,这个主要用了二分法,求解特别简单,我自己竟然想了那么长时间,哎,,,,多练习吧,,骚年,, #include#includeint main(){ double l=2.0,r=3.0,x=2.5; while(fabs(pow(x,x)-10)>0.000001) { x=(l+r)/2.0; if(pow(x,x)>1原创 2014-11-30 23:47:24 · 1065 阅读 · 0 评论 -
子数组的最大和[算法]
题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。 这个题我的第一感觉就是3层for循环直接进行么,就喜欢暴力f原创 2015-04-21 21:36:05 · 1545 阅读 · 0 评论 -
蓝桥杯习题
这个月我都不知道忙什么了,反正蓝桥杯就这样过去了,把自己的整理的习题发上去吧。 问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整原创 2015-04-25 23:14:45 · 3066 阅读 · 0 评论 -
称量硬币 和 2016腾讯的蛇形矩形
腾讯2016蛇形矩阵C语言版实现,认真分析一下也不难,找到规律 #include #include //全局变量int count = 1;void do_snack(int **matrix,int n);void write_num_to_snack(int **matrix,int n,int start);void print_snack(int **matr原创 2016-04-06 20:29:57 · 794 阅读 · 0 评论 -
动态规划之最大k乘积,编辑距离,k好数,节点选择,背包问题
这几天真是闲的没事做了,都不知道干什么了,把自己之前的动态规划代码整理一遍,现在写代码也有了自己的风格。直接复制上去自己看吧,也懒得解释了1.最短编辑距离,里面用到了重定向读写#include #include #define MAXLEN 100#define min(a,b,c) (((a<b?a:b)<c)?(a<b?a:b):(c))int c[MAXLEN][M原创 2016-10-12 20:20:47 · 645 阅读 · 0 评论 -
八皇后的问题
八皇后的问题和马踏棋盘的思路是一样,都用到了回溯的思想。代码也都差不多。这个里面最精彩的地方用4个一位数组表示了这个棋盘。这个里面总共有92组解 代码展示 #include#includeint col[8]={0};int right[15]={0};int left[15]={0};int Queen[8];i原创 2015-01-26 16:28:03 · 814 阅读 · 0 评论 -
全排列和汉诺塔
全排列问题这个是用递归实现的 #includeint cout=1;int n=0;void print(int *a){ int i=0; printf("%2d ",cout++); for(i=0;i<n;i++) printf("%d",a[i]); printf("\n");}void swap(int &x,int &y)原创 2015-03-17 23:29:50 · 1093 阅读 · 0 评论 -
马踏棋盘递归所有解
这次马踏棋盘是用递归实现的,而且可以弄出来所有解,当时电脑跑的最快的都有40多万解了,这个也可以看你电脑cpu好坏,一般超级本跑不动。这是实际上和八皇后是同一种性质的问题,都用到了回溯的思想,有接进行下一个,不行了退回去,在进行尝试。不多说了,直接上代码; #include#include #include#define N 8int cnt=1; // 记录马的位置i原创 2015-01-26 16:26:15 · 3517 阅读 · 0 评论 -
整理之前写过的小代码,测试代码
1.对于这个程序测试环境是redhat7.0,编译器用的是gcc,主要是熟悉一下如何使用linux下的这些函数,如何使用man自己查阅#include #include #include #include void print_week(int ); //输出周void print_annimal_year(int); // 输出生肖年void print_we原创 2016-10-08 11:34:35 · 599 阅读 · 0 评论 -
用C语言爬网页代码
今天下午把爬代码看了一下,也敲了,只不过我爬下来的总是乱码,现在大多数爬虫都是Python和Java,很少有人用C语言爬了; #include #include #include#pragma comment(lib, "ws2_32.lib")int main(){ WSADATA wd; // web API SOCKET c; char sendB原创 2015-03-19 18:41:59 · 3281 阅读 · 0 评论 -
随便敲敲算法(一)
这些是自己慢慢的日积月累的,总之要相信好的算法的基础也是靠慢慢积累和思考而来的,这里面的东西有些是别人博客上的,有些是面试题,自己百度的1.五只猴子分桃。半夜,第一只猴子先起来,它把桃分成了相等的五堆,多出一只。于是,它吃掉了一个,拿走了一堆; 第二只猴子起来一看,只有四堆桃。于是把四堆合在一起,分成相等的五堆,又多出一个。于是,它也吃掉了一个,拿走了一堆;.....其他几只猴子也都是 这样分原创 2015-06-02 22:13:30 · 2651 阅读 · 0 评论 -
Linux创造固定的文件大小-预分配磁盘空间
一、课前预习写本篇文章的目的很简单,防止采坑、防止采坑、防止采坑我们在开发程序的过程中,往往需要预分配磁盘空间,防止因磁盘空间不够而引发程序异常问题(已踩过坑), 现网查阅资料,有些预分配磁盘空间的方法不正确,在这里特别记录一下, 除此之外,把正确的预分配的方法和大家分享一下,如果其他人有建议,欢迎拍砖狠砸二、假:磁盘预分配—ftruncate1. 使用lseek、ftruncate到一个...原创 2018-10-25 16:05:04 · 4983 阅读 · 2 评论 -
FLV格式解析及其解析器的实现
一、FLV基础入门最近在搞flv解析器,网站看到一些比较好的基础入门资料,直接搬过来了 FLV文件格式详解 FLV文件格式解析 FLV封装原理 flv文件元信息(metadata) FLV文件结构解析其实看这么多资料还不如下载一个flv解析器(flvparse)直接看里面的格式,heard、tag应有尽有,一目了然 二、FLV解析器实现在对flv格式清楚的基础上,就...原创 2018-02-26 10:57:56 · 2512 阅读 · 2 评论 -
采坑 uint32_t 和 uint64_t
uint32_t 和 uint64_t 混用,超出uint32_t的范围,结果导致计算错误。。。#define INNER_TANK_NODE_INFO_LEN 8192sata_node_info_num_ = chunk_num_ + big_chunk_num_;chunk_base_addr_size_ = sata_node_info_num_ * INNER_TANK_NODE原创 2018-01-22 17:08:51 · 2863 阅读 · 0 评论 -
长期更新琐碎易忘知识点。。。。。
这篇文章主要是记录一些常用的小技巧, 日积月累, 用的时候直接粘贴复制即可。 . 在C语言中对于小函数的宏定义是非常好的,因为好用,也可以屏蔽类型#include #define Swap(a,b) {a = a ^ b; \ b = a ^ b; \a = a ^ b; \} #define averge(a,b) ((a&b)+((a^b)>>1)i nt main() { int a = 4,b = 3; Swap(a,b); 在写简单的动态数组的时候,开辟的内存需要是32的整数倍原创 2016-09-13 16:17:52 · 581 阅读 · 0 评论 -
字符数组md5[4]转换成uint32_t的无符号整数转化?
一个unsigned char md5[4]数组转成uint32_t的无符号整数转化其实也很简单,只要清楚内存的分布结构就没有问题linux内存是由高地址到低地址的,对于md5[4]和int a的分布就是这样子的,md5数组占用4个字节,int也占用4个字节,char数组转成int数组的时候,就是从char数组的末尾开始的,一张图看懂看不懂就看造化了#include <stdint.h>int ma原创 2017-12-25 16:50:41 · 3134 阅读 · 0 评论 -
ofstream和ifstream详细用法
ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器(<<) 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"Write Stdout"<<'\n';就表示把字符串"Write Stdout"和换行字符('\n')输出到标准输出流。2、析取器(>>)转载 2017-12-14 16:01:10 · 349 阅读 · 0 评论 -
overflow in implicit constant conversion
被女朋友问了一个很简单的问题,刚开始还以为是编译器的锅么,根本是非法吗? 但是非法之后的运行结果呢?当时竟然没有想懂,亲自操刀尝试了下, 下面意思应该很明确了原创 2017-11-14 21:42:24 · 4689 阅读 · 0 评论 -
浅析SkipList跳跃表原理及代码实现
SkipList在leveldb以及lucence中都广为使用,是比较高效的数据结构。由于它的代码以及原理实现的简单性,更为人们所接受。我们首先看看SkipList的定义,为什么叫跳跃表?“ Skip lists are data structures that use probabilistic balancing rather than strictly enforced balancing. As a result, the algorithms for insertion转载 2015-07-12 12:35:23 · 727 阅读 · 0 评论 -
采坑memset初始化vector的变量---vector iterators incompatible
和别人合作一起写一个斗地主,我负责拆牌这一块,每次需要返回最优的牌型。因为我习惯了变量初始化用memset,vector的变量也意外的用了memset。结果尼玛的调试了好长时间,才知道memset初始化vector变量会导致向量丢失,不能正常的遍历,但是可以正常的push_back。 编译器报错是:“vector iterators incompatible”,有毛用。 加代码调试编译报错的地方让人根本摸不着头脑,这一块怎么会错呢? 纠结了好长时间。其实下面这一块是对的。原创 2017-10-09 16:05:53 · 9393 阅读 · 0 评论 -
linux下找到程序运行的位置
在linux下有时候我们需要找到程序运行位置,总不能一直用find在linux目录下直接遍历查找吧,那样太慢了。其实有一个简单的办法。 如下:1. ps -aux | grep 8080 找到TestHttpServer2.py运行的pid 在linux下有时候我们需要找到程序运行位置,总不能一直用find在linux目录下直接遍历查找吧,那样太慢了。其实有一个简单的办法。 如下: 1. ps -aux | grep 8080 找到TestHttpServer2.p原创 2015-07-20 09:09:06 · 1804 阅读 · 0 评论 -
linux C 获取cpu数目
我们现在写的代码一定要考虑可移植性,就举一个很简单的例子,一个进程开启的线程数量与CPU个数相关,而不同的机器CPU的数目不同,当我们代码从一个机器移到另外一个机器的时候,我们就不要手工修改先关参数,直接写代码自动获取CPU数目从而自动生成合适的线程数目。原创 2015-02-19 13:17:38 · 2180 阅读 · 0 评论 -
webbench学习源码
深入学习一个语言或者想提升自己的编程水平,最好的办法就是学习优秀的源代码,一个意外的机会,接触到了webbench的源码,里面认认真真的看下去真是get到不少东西。webbench就是一个用纯C语言实现压测工具,思路很简单,主进程创建出多个子进程,让多个子进程去访问url,记录子进程访问该网页的情况,主进程和子进程之间采用管道通信,最后主进程汇总子进程的数据结果,就是这么简单。 在webbench源码中,有很多技巧值得学习,如何组织代码让代码精剪一目了然,如何巧妙的使用全局变量,而且大量的字符串处理函数st原创 2015-01-26 16:14:31 · 933 阅读 · 0 评论 -
整理桌面,杂碎的常用的知识点
虽然两个电脑屏幕,但是都用成这个样子了,差点快满屏幕,今晚闲来无事,整理整理桌面杂碎的知识,最近也在积极的准备面试中,家都回不了。桌面成这个样子了,敢看?等等面试结束了,好好整理一番。桌面上的tcpdump,linux下的抓包分析数据神器,简单好用比windows下的wireshark好用多了;对于什么时候会接受到一个rst包呢,服务器都没开这个端口原创 2016-08-14 21:18:57 · 668 阅读 · 0 评论 -
随便敲敲算法(三)
昨天下午打乒乓球了,爽爽的,各种抽球,以后多运动下,结果导致不想吃饭,吃个半个西瓜,结果肚子坏了,可悲,晚上看了两个算法,一个是关于重复数字的问题,统计出来,另一个是全排列。那就先说第一个吧,我也查了很多博客,各有各的想法,我整理了一下,1.给定数组A,大小为n,数组元素为1到n的数字,不过有的数字出现了多次,有的数字没有出现。请设计算法和程序,统计哪些数字没有出现,哪些数字出现了多少次。能够在O原创 2015-06-06 17:38:24 · 892 阅读 · 0 评论 -
随便敲敲算法(二)
昨天刚来到学校,昨天过的还不错,早上很早起床,锻炼吃饭,昨天刷了一天算法,晚上跑步打篮球,这样的节奏很好不错,继续坚持。今天早上亦是如此。第一个开实验室门,开窗,烧水。还是总结一下昨天干嘛了0x80000000就是0啊,用这个还是很高端,一定要记住这个数字2147483647。昨天看的主要是关于数组的,那就开始第一个吧,一 重排问题 给定含有n个元素的整型数组a,其中包括0元素原创 2015-07-21 09:21:27 · 594 阅读 · 0 评论 -
腾讯2017年给定一个整数判断有几个质数对
这个题目意思也就是如果输入10 ,那么就有(3,7),(5,5)两个质数对,因此输出就是2,其实这个思路很简单,就是先找出质数,并存储,然后在遍历存储下来的质数,但是用整数数组存储太浪费。就用C++的bool数组吧。里面也用到了之前的埃氏拉。 #include using namespace std;bool f[1009] = {};int main(int arg原创 2016-09-13 11:05:46 · 1114 阅读 · 0 评论 -
搜狗的2017笔试题距离之和
今天下午3点答了搜狗的笔试题目,总体感觉还不错,有一道编程编程题目,并没有做到100%全过,下来有时间补上,求距离之和,题目定义两个大于2的偶数之间的距离,为这两个数之间质数的个数,从小到大输入n个大于2的偶数,输出所有两两之间距离的总和。样列输入: 第一行代表输入偶数的个数34612样例输出:6刚开始拿到这个题目自己第一感觉就是先开辟一个额外原创 2016-09-12 21:59:31 · 1347 阅读 · 2 评论 -
动态规划之背包问题
这么长时间了,终于对背包差不多了解了,这个是01背包问题,里面的最主要的还是找出状态转移方程。动态规划是运筹学的一个分支,是求解决策过程最优化的数学方案。最优化原理,把多个阶段过程转化为一系列单阶段的问题,逐个求解。它里面包含两个重要的性质——最优子结构和重叠子问题 #includeint main(){ int i,j; in原创 2015-03-17 22:56:26 · 1704 阅读 · 0 评论 -
适配器 蒙面模式 代理模式
设计模式启蒙阶段原创 2015-04-26 21:39:16 · 3696 阅读 · 1 评论 -
C++组合通信
#include #include#includeusing namespace std;class AbstractFile{ protected: string name; public: AbstractFile(string n){ name=n; } virtual void Display()=0; // 纯虚函数原创 2015-03-12 17:35:38 · 1522 阅读 · 0 评论 -
C++ 练习代码
#include #includeusing namespace std;class A{ private: int x,y; public: A(int x=0,int y=0){ this->x=x; this->y=y; } //输出x y void fun(){ cout<<x<<","<<y<<endl; }};class原创 2015-03-11 17:44:48 · 1349 阅读 · 0 评论 -
哈夫曼树编码
终于会哈夫曼编码了,那就把代码发上去了,这周我们课设了,感觉自己好颓废,过了几天糜烂的生活,自己也不知道怎么回事,有些事也就是那个样子,不要因为其他人影响自己的情绪,对自己好点,说到还要做到,不仅嘴上说说而已。我昨天一个人去,就一个人去的,一个人的感觉也不错嘛,想做什么就做什么,自己的情绪也好多了,就像我说Low·魂淡想怎样就怎样痛怎样伤怎样,任何时候都不要让自己的心累。别笑我,幼稚的轻狂,原创 2014-12-13 16:56:45 · 1466 阅读 · 0 评论