`
文章列表
最短路径算法——Dijkstra,Bellman-Ford,Floyd-Warshall,Johnson,无一幸免 本文内容框架: §1 Dijkstra算法 §2 Bellman-Ford算法 §3 Floyd-Warshall算法 §4 Johnson算算法
先交代下位运算的基础知识   a & b  a | b  a ^ b     ~a   a << b a >> b    位运算应用口诀 清零取反要用与,某位置一可用或, 若要用反和交换,轻轻松松用异或。   移位运算 要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。          2 "<<" 左移:右边空出的位上补0,左边的位将从字头挤掉,其值相当于乘2。          3 ">>"右移:右边的位被挤掉。对于左边移出的空位,如果是正数则 ...
题目:给定一个字符串,求其的最大回文子串。例如:字符串:owwoshisbsiha,它的最大回文子串是:hisbsih。 求解方法:暴力枚举、动态规划、后缀数组、线性算法 方法一:暴力枚举 最简单的方法当然就是对字符串的每一个子 ...
  1.声明和定义全局变量和函数 一个全局变量或函数可以(在多个编译单元中)有多处的声明,但是定义却最多只能允许出现一次。对于全局变量,定义是真正分配空间并赋初始值(如果有)的声明。 static修饰的在C是不能被其他文件访问调用的。   2.typedef和#define 有什么区别 先看实例: typedef char *string_t; #define string_d char *; string_t s1,s2; string_d s3,s4; s1,s2,s3都被定义成char *,但s4却被定义成char型,这里就可以看出typedef和#define的 ...
  数组与指针: 数组的长度必须用大于等于1的常量表达式(整型字面值常量,枚举常量,常量表达式初始化的整型const对象)定义,非const变量以及要到运行阶段才知道的其值的const 变量(const int sz=getSize();)都不能用于定义 ...
该篇笔记转自以下两个连接:(另外附件里有STL源码分析和编写高质量代码:改善C++程序的150个建议) http://my.csdn.net/swordll80   http://blog.csdn.net/pizi0475/article/details/5382117     条款1:仔细选择你的容器 了解各种容器的实现方法,知道各种容器的内存管理方式、各种操作所对应的底层操作,然后根据需要选择恰当的容器。 条款2:小心对“容器无关代码”的幻想        各种容器支持的操作集合不同、各容器相同操作的特性不同。 条款3:使容器里对象的拷贝操作轻量而正确   ...
      组织和策略问题 0. 不要为小事斤斤计较。(或者说是:知道什么东西不需要标准化)  无需在多个项目或者整个公司范围内强制实施一致的编码格式。只要规定需要规定的事情:不要强制施加个人的喜好或者过时的做 ...
首先本文是对参考中三个连接的博客进行的整理,非常感谢三位博主的努力,每次都感叹网友的力量实在太强大了……   第一章 快速上手 1.  在C语言中用/*和*/来注释掉这段代码,这个实际上并不是十分的安全,要从逻辑上删除一段C代码,最好的办法是使用#if指令:     #if 0         Statement     #endif 2.  其他语言中,无返回值的函数称为过程(procedure)。 3.  数组做参数的时候是以引用(reference)的方式传递的,即地址传递。而标量和常量都是传值调用,被调用的函数无法修改调用函数以传值形式传递给它的参数,然而当被调用函 ...
  该文转载自http://blog.csdn.net/wanggang_0717/article/details/4313906 虚基 类 (虚 继 承)       1, 一个 类 可以在一个 类 族中既被用作虚基 类 ,也被用作非虚基 类 。       2, 在派生 类 的 对 象中,同名的虚基 类 只 产 生一个虚基 类 子 对 象,而某个非虚基 类产 生各自的子 对 象。       3, 虚基 类 子 对 象是由最派生 类 的构造函数通 过调 用虚基 类 的构造函数 进 行初始化的。       4, 最派生 类 是指在 继 承 结 构中建立 对 象 时 所指定的 类 ...
  转载自http://bellgrade.blog.163.com/blog/static/83155959200863113228254/,方便日后自己查阅, More Effective C++读书笔记 条款1:指针与引用的区别 二者之间的区别是:在任何情况下都不能用指向空值的引用,而指针则可以;指针可以被重 ...
这是转载来的,不知道原出处,还望见谅…… 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a = 'A'; // global variablevoid msg(){     printf("Hello\n");}下面是main.c的内容int main(void){        extern ch ...
  二维数组的动态分配及参数传递 这篇文章转载自http://www.cnblogs.com/bigshow/archive/2009/01/03/1367661.html,之所以转载是为了保存下以便日后自己能够饱享作者的精彩。 1. C语言动态分配二维数组 (1)已知第二维 Code-1 char (*a)[N];//指向数组的指针 a = (char (*)[N])malloc(sizeof(char *) * m); printf("%d\n", sizeof(a));//4,指针 printf("%d\n& ...
今天在网上看了一个将二叉树转换成是双向链表的题目,发现自己对递归还是没有一个很精准的把握,看下面代码:     void helper(BSTreeNode *& head, BSTreeNode *& tail, BSTreeNode *root) { BSTreeNode *lt, *rh; if (root == NULL) { head = NULL, tail = NULL; return; } helper(head, lt, root->m_pLeft); helper(rh, tail, root->m_pRight); if ...
两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]...*a[N-1]/a[i];要求:1.不准用除法运算2.除了循环计数值,a[N],b[N]外,不准再用其他任何变量(包括局部变量,全局变量等)3.满足时间复杂度O(n),空间复杂度O(1) 解法如下: b[0] = 1;for (int i = 1; i < N; i++){b[0] *= a[i-1];b[i] = b[0];}b[

Stack overflow

 0x011718a9 处有未经处理的异常: 0xC00000FD: Stack overflow :这个错误当然是栈溢出,因为局部变量是分配在堆栈上的,一般像递归程序没有return就会出现这个问题;还有一个原因就是在分配局部变量数组占用空间过大也会出现这样的错误,如char  a[1024*500]一开始不会保存,但可能随着程序运行就会出现stack overflow的错误,这时候就会有点摸不着头脑,总之就是把堆栈用完了,这时可以使用指针分配空间,使用完之后立即delete就可以了……
Global site tag (gtag.js) - Google Analytics