• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

kaikai向前走

转职任务完成。崭新fn诞生
  • 博客园
  • 联系
  • 订阅
  • 管理

公告

随笔分类 -  c/c++语言

1 2 下一页

语法与技巧
让vc2010的项目在vc2012也能直接使用,而不必修改PlatformToolSet
摘要:在Visual Studio 2010新建的项目到2012里打开会要求修改PlatformToolset的值,从v100改为v110。如果这个项目需要进版本管理(VCS,如git, svn),这将造成一点小麻烦。两头要么忽略这个变更,要么互相覆盖。最近实验了一种方案,可以保持项目在这两种环境下一致。... 阅读全文

posted @ 2014-07-07 11:27 kaikai 阅读(2840) 评论(0) 推荐(0)

友元接口-限制你的友元类数量
摘要:友元接口-限制你的友元类数量在写C++程序时,也许你遇到过这样的情况:在一个类有一组策略,而且这组策略的实现都需要访问A的一些成员,而且这些成员并不希望被其它类所访问。一般这些成员被期望设置为保护或者私有的,并且这组策略被当作这个类A的友元类。如:[代码]现在,假如你需要添加新的策略Strategy4为了维持这种微妙的关系,你需要把Strategy4添加为类A的新的友元类。随着策略的增加,这个过程... 阅读全文

posted @ 2009-09-08 13:01 kaikai 阅读(493) 评论(0) 推荐(0)

g++上c++模板与padding交互产生的陷阱
摘要:关于Padding,请看下面的代码:[代码]我们可以assert:[代码]这里的padding大小我们基本都可以预测。由于c++模板的代码生成规则,下面的代码可能不会注意到[代码]这时sizeof(B2)以及B2::b的偏移地址是多少?struct BT第一次被实例化是在struct B内,且此时的pack为1.于是该类的alienment也被当作1来处理到后面的B2内,虽然pack已经恢复(为4... 阅读全文

posted @ 2009-07-23 14:21 kaikai 阅读(562) 评论(0) 推荐(0)

卡马克的求平方根函数代码的陷阱
摘要:首先感谢xq; lj定位问题! 问题出在我签入的来自卡马克的求平方根函数代码。[代码]红色部分代码在gcc开启-fstrict-aliasing选项后将得到错误的代码。由于使用了type-punned pointer将打破strict-aliasing规则。由于-fstrict-aliasing选项在-O2, -O3, -Os等优化模式下都将开启(目前dev不带优化,main带-O3所以该问题只在... 阅读全文

posted @ 2009-07-23 14:19 kaikai 阅读(1124) 评论(0) 推荐(0)

浮点数默认精度在windows/linux上的差异
摘要:好久没写点什么了。浮点数在fpu上处理有个精度控制,可以是单精度(长32bit其中尾数24bit),双精度(长64bit尾数56bit),扩展精度(长80bit,尾数64bit)。这是通过浮点控制字的一个位段来控制的。在windows/vc环境(未证实,也许与编译器有关,比如是vc)下,默认的精度是双精度。在linux/gcc环境则默认是扩展精度。这可以造成你在含有浮点计算的程序移植时出现一些细微... 阅读全文

posted @ 2009-03-01 12:24 kaikai 阅读(1976) 评论(0) 推荐(1)

数独求解程序
摘要:翻到以前写的一个程序。贴出来优先推理,无法确定的情况下找分支最少的一个去猜,并把当前状态保存,以备将来回溯。 #include #include #include #include #include using namespace std;struct Node{ char str[9][10]; char used[27][10]; int rest; int lastx... 阅读全文

posted @ 2008-02-13 13:55 kaikai 阅读(1532) 评论(0) 推荐(0)

短代码.EOF串
摘要:一个只包含EOF三个字符的字符串,并且不存在连续的O,问长度为n的这种串有多少种。其中0<n<40。递推: e'=e+o+f, o' =e+f, f'=e+o+f // 预处理查表main(i,n){__int64 d[39]={1,1,1,3};for(;i<39;i++)d[i][1]=d[i-1][0]+d[i-1][2],d[i][2]=d[i][0]=d[i][1]+d[i-1][1],... 阅读全文

posted @ 2007-07-19 11:44 kaikai 阅读(541) 评论(1) 推荐(0)

短代码.第几天
摘要:给定一个日期,输出这个日期是该年的第几天。输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成。对于每组输入数据,输出一行,表示该日期是该年的第几天。 比如1985/1/202006/3/12输出2071 main(y,m,d){while(scanf("%d/%d/%d",&y,&m,&d)==3){char s[]={0,1,-1,0,0,1,1,2,3,3,4,4};m--;d+=... 阅读全文

posted @ 2007-07-18 23:35 kaikai 阅读(609) 评论(1) 推荐(0)

短代码.求2点之距离
摘要:问题:输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。 输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。 对于每组输入数据,输出一行,结果保留两位小数。比如,输入: 0 0 0 10 1 1 0那么输出: 1.001.41题目很简单,甚至有点无聊了。 #include int main(){ float a,b,c,d; ... 阅读全文

posted @ 2007-07-14 09:55 kaikai 阅读(994) 评论(8) 推荐(0)

求一个数字的所有因数之和
摘要:例如:6的因数有1,2,3,6,它们的和是12下面求n^m的所有因数之和除以一个数s的余数. #include #include using namespace std;static vector primes;bool IsPrime(int n){ for(size_t i = 0; primes[i] * primes[i] = primes.size()) { ... 阅读全文

posted @ 2007-02-26 00:26 kaikai 阅读(2586) 评论(0) 推荐(0)

查找第k个数字的位置
摘要:今天读到一篇文章:http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=importance_of_algorithms其中提到用随机算法找数组中第k大数字,于是试着写了一下: #include #include using namespace std;#include #include size_t rand(size_t maxn){... 阅读全文

posted @ 2007-02-25 00:16 kaikai 阅读(503) 评论(1) 推荐(0)

用Regular expression寻找源代码中的汉字字符串
摘要:在平台改为支持多语言时,原来源代码中可能存在大量直接引用的字符串,需要改为由多语言模块翻译。如果不能准确的搜索源代码,那么工作量将非常庞大。在vc中使用Regular expression编写:^[^#].*".*[\x4080-\xfffe]+.*"匹配所有非预编译中的包含汉字的字符串。\x4080-0xfffe其实超过了汉字集合,不过源代码里用到这些'特别'的字符的可能性并不大。面对类似的恐怖... 阅读全文

posted @ 2006-03-08 18:00 kaikai 阅读(787) 评论(2) 推荐(0)

typedef的形式定义,猜ing,求证
摘要:有网友问到typedef究竟怎么使用?书上有类似typedef A B;的形式表示定义B是类型A的别名。但却可以看到如typedef int (*fa[20])(int);这样'奇怪'的形式居然也正确。我觉得貌似可以这样说:任何一个变量定义的形式AnB;其中包含变量名n,类型为C,如果改写为:typedef AnB;就使得名字n成为类型C的别称。虽然不能确定它是正确的定义,但我还没有想到反例... 阅读全文

posted @ 2006-02-27 20:36 kaikai 阅读(1093) 评论(10) 推荐(0)

计算二进制位'1'的个数
摘要:写一个函数,返回数字中二进制位为'1'的个数。比如36,化为二进制得到100100,其中有2个'1'。方法1:分别判断各个位 int bit_count(unsigned int n){ int count; for(count = 0; n; n >>= 1) { count += n & 1; } return count;}方法2:循环中直接计算1... 阅读全文

posted @ 2006-02-15 10:57 kaikai 阅读(6989) 评论(12) 推荐(0)

google china code jam round2 div1 1000分题
摘要:直到结束时才去打开看1000分的题究竟什么样。原来google还玩了一把心理游戏。题目大意:用最简分数表示等价的循环小数。分母必须是正整数输入一个长度在3到10个字符(包含)间的字符串:a.b(c)的形式表示一个循环小数输入保证下列条件:字符仅包含0123456789.()a表示整数部分,最多1位数(第2个字符总是'.')b表示不循环部分,最少可以是0位c表示循环部分,最少可以是0位括号必须成对出... 阅读全文

posted @ 2005-12-26 23:42 kaikai 阅读(909) 评论(2) 推荐(0)

google china code jam入围赛的一个题
摘要:连了1个多小时都没登陆成功,就去群里聊天。听朋友说了个题目,我觉得有思路就写了一下。后来终于登陆成功了,可惜我分配到19组题目不一样- -。问题是这样的,一个m*n的字母矩阵内可以找到多少8连通路径匹配一个长度为k的串。m,n,k都不超过50如果匹配数量超过10^9就直接返回-1. #pragma warning(disable:4786)#include #include #include us... 阅读全文

posted @ 2005-12-13 22:39 kaikai 阅读(1143) 评论(5) 推荐(0)

编程爱好者论坛第六次编程比赛题目
摘要:题目原文地址http://www.programfan.com/club/showbbs.asp?id=126227一、按要求编写以下函数。功能: 将给定缓冲区中的#字符移到字符串尾部函数名称:changetotail入口参数:psztext指向字符缓冲区的指针,以0结尾。出口: psztext所指缓冲区中的#字符被移到缓冲区尾部返回值: 在出口缓冲区中第一个#的位置,若缓冲区中无#... 阅读全文

posted @ 2005-12-04 22:39 kaikai 阅读(1077) 评论(0) 推荐(0)

取最小的比n大的2的幂
摘要:是不是很拗口?判断一个数n是否是2的幂,只要看n&(n-1)是不是0就行了。而找比它大的2的幂,可以先把它最高的一个1位之后全填充1然后加1。填充的方法可以是log32 = 5次的按位或。这样就不必做判断而出现分支了。也许有更快更好的方法吧,借此抛砖引玉一把。 #include inline bool is_power_of_2(int n){ return (n & (n-1)) == 0... 阅读全文

posted @ 2005-10-10 20:15 kaikai 阅读(978) 评论(1) 推荐(0)

按列数自动换行
摘要:第6论坛的一个问题:编写一个程序,从键盘上以任意方便的方法输入一段文章(文章中每个单词不会超过20个字母),然后打印出来。打印时每行的宽度必须为20字符。如果一行的最后一个单词超过了本行20个字符的范围,则应把它移到下一行去。在每个单词之间增加一些空格,以便使每行的末尾准确地处于第20个字符处。我写了个把一个字符串句子按要求的列分行的函数。 #pragma warning(disable: 478... 阅读全文

posted @ 2005-10-02 17:21 kaikai 阅读(694) 评论(0) 推荐(0)

百度C 语言吧 · 问题资料大全
摘要:http://post.baidu.com/f?kz=13382217有人在维护,所以分类还真不错。 阅读全文

posted @ 2005-09-30 22:06 kaikai 阅读(968) 评论(0) 推荐(0)

1 2 下一页
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3