随笔分类 -  C++

摘要:郑重声明:本文是笔者根据个人理解所写,错误难免,欢迎拍砖! 可以任意转载、修改,转载时是否标明出处,随君而定!请说出如下2种方式,哪种更好,为什么?方式一:void foo(int a, float b, char* ch, double d, float f);方式二:struct A{ int a; float b; char ch[5]; double d; float f;};void foo(A* pa);咋一看,不知道这题想要考什么,无从下手。其实该题是检查考生对于内存对齐的理解。下面我们先看看关于内存的一些知识。什么是字节对齐,为什么要对齐?... 阅读全文
posted @ 2013-02-25 15:57 怪人Kook 阅读(3023) 评论(10) 推荐(3) 编辑
摘要:郑重声明:本文是笔者根据个人理解所写,错误难免,欢迎拍砖! 可以任意转载、修改,转载时是否标明出处,随君而定! 交换排序应该是交换排序里面最简单,也最容易理解的一个排序算法,比较接近人的习惯思维。扫描整个数据,从第0个元素开始,跟以后的元素逐个比较,按照排序规则(从小到大或者从大到小)交换顺序,比较完第a后再去比较第a+1个元素,以此类推。 1 template <typename T> 2 void swap(T& lhs, T& rhs) 3 { 4 T tmp = lhs; 5 lhs = rhs; 6 rhs = T; 7 } 8 9 templat... 阅读全文
posted @ 2013-02-21 03:07 怪人Kook 阅读(477) 评论(0) 推荐(0) 编辑
摘要:郑重声明:本文是笔者根据个人理解所写,错误难免,欢迎拍砖! 可以任意转载、修改,转载时是否标明出处,随君而定! 折半插入排序(binary insertion sort)是对插入排序算法的一种改进,由于排序算法过程中,就是不断的依次将元素插入前面已排好序的序列中。由于前半部分为已排好序的数列,这样我们不用按顺序依次寻找插入点,可以采用折半查找的方法来加快寻找插入点的速度。 在将一个新元素插入已排好序的数组的过程中,寻找插入点时,将待插入区域的首元素设置为a[low],末元素设置为a[high],则轮比较时将待插入元素与a[m],其中m=(low+high)/2相比较,如果比参考元素... 阅读全文
posted @ 2013-02-20 14:48 怪人Kook 阅读(496) 评论(0) 推荐(0) 编辑
摘要:郑重声明:本文是笔者根据个人理解所写,错误难免,欢迎拍砖! 可以任意转载、修改,转载时是否标明出处,随君而定!算法思想:直接插入排序(straight insertion sort)的作法是:每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从前向后扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。直接插入排序属于稳定的排序,时间复杂性为o(n^2),空间复杂度为O(1)。直接插入排序是由两层嵌套循环组成的。外层循环标识并决定... 阅读全文
posted @ 2013-02-20 12:02 怪人Kook 阅读(371) 评论(0) 推荐(0) 编辑
摘要:一、位运算1.1 求下面函数的返回值( 微软) 1 int func(x) 2 { 3 int countx =0; 4 while(x) 5 { 6 countx++; 7 x=x&(x-1); 8 } 9 return countx; 10 } 解答:假定x = 9999。 答案:8思路:将x转化为2进制,看含有的1的个数。二、引用2.1 什么是“引用”?声明和使用“引用”要注意哪些问题?答:引用就是某个目标变量的“别名”(alias),对引用的操作与对变量直接操作效果完全相同。声明一个引用... 阅读全文
posted @ 2013-02-18 18:14 怪人Kook 阅读(5689) 评论(0) 推荐(0) 编辑
摘要:郑重声明:本文是笔者根据个人理解所写,错误难免,欢迎拍砖! 可以任意转载、修改,转载时是否标明出处,随君而定!static_cast用于“良性”和“适度良性”转换,包括不用强制转换(如自动类型转换)。static_cast全部用于明确定义的转换,包括编译器允许我们所做的不用强制转换的“安全”转换和不太安全但清楚定义的转换。用法:static_cast< type-id > (expression)该运算符把expression转换为type-id类型,但没有在运行时进行类型检查来保证转换的安全性。static_cast包含的类型转换包括一下几种:A、典型的非强制变换B、窄化(有信息 阅读全文
posted @ 2013-02-18 17:22 怪人Kook 阅读(1123) 评论(1) 推荐(1) 编辑
摘要:郑重声明:本文是笔者根据个人理解所写,错误难免,欢迎拍砖! 可以任意转载、修改,转载时是否标明出处,随君而定!系统环境操作系统: Ubuntu 10.04 LTS - Lucid Lynx内核版本: 2.6.35-32-generic i686 GNU/Linux系统gcc版本: gcc (Ubuntu/Linaro 4.4.4-14ubuntu5.1) 4.4.5一、准备工作编译GCC需要用到3个软件包:GMP, MPFR, MPC。之所以建议先安装这3个软件包,是因为在使用./configure配置的时候,可能会遇到如下错误: configure: error: Building ... 阅读全文
posted @ 2013-02-17 00:13 怪人Kook 阅读(3481) 评论(0) 推荐(0) 编辑
摘要:今天在看《windows网络与通信程序设计》,按照书上的例子输入了一个程序,编译结果提示: Cannot open include file: 'iphlpapi.h': No such file or directory 好不容易在网上找到了iphlpapi.h文件,结果又提示:can not open file 'IPHlpApi.Lib' 又是一头雾水,说要安装什么SDK,找了半天,找到一个可以用的连接,在下面贴出来:http://apps.hi.baidu.com/share/detail/18952922 安装上面的方法就可以完全安装SDK了。另外关于 阅读全文
posted @ 2013-02-16 22:09 怪人Kook 阅读(1394) 评论(0) 推荐(0) 编辑
摘要:ostringstream是C++的一个字符集操作模板类,定义在sstream.h头文件中。ostringstream类通常用于执行C风格的串流的输出操作,格式化字符串,避免申请大量的缓冲区,替代sprintf。派生关系图:ios_baseiosostreamostringstreamostringstream的构造函数形式:1 explicit ostringstream ( openmode which = ios_base::out );2 explicit ostringstream ( const string & str, openmode which = ios_base 阅读全文
posted @ 2013-02-16 22:01 怪人Kook 阅读(3386) 评论(0) 推荐(0) 编辑
摘要:问题描述:如何将获取一个浮点数的整数部分以及小数部分方法一: 1 #include <iostream> 2 using namespace std; 3 4 void main() 5 { 6 float f = -23.04f; 7 int i = f; 8 float ff = f - i; 9 10 cout << "i=" << i << ", ff=" << ff << endl;11 }output:i=-23, ff=-0.0400009缺点:不能够精确小数的位数,因 阅读全文
posted @ 2013-01-31 12:02 怪人Kook 阅读(2923) 评论(5) 推荐(0) 编辑