- 博客(22)
- 资源 (4)
- 问答 (1)
- 收藏
- 关注
转载 UML类图小结
类与类之间的关系1. 关联关系关联(Association)关系是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系,如汽车和轮胎、师傅和徒弟、班级和学生等等。图1 关联关系实例(1) 双向关联默认情况下,关联是双向的。例如:顾客(Customer)购买商品(Product)并拥
2015-03-31 10:31:39 732
转载 图 深度优先遍历 广度优先遍历 非递归遍历 图解算法过程
图的邻接矩阵表示通常图的表示有两种方法:邻接矩阵,邻接表。本文用邻接矩阵实现,一是代码量更少,二是代码风格也更贴近C语言。但不论是图的哪种实现方式,其基本的实现思想是不变的。1:节点的信息,我们用一维数组a[n]来存储,假设图共有n个节点。2:节点与节点间的关系,我们用二维数组b[n][n]存储。3:b[i][j]表示,从i到j有向连通,b[j][i]表示从
2015-03-30 19:36:17 2822
转载 动态规划算法的优化技巧
[关键词] 动态规划、 时间复杂度、优化、状态 [摘要]动态规划是信息学竞赛中一种常用的程序设计方法,本文着重讨论了运用动态规划思想解题时时间效率的优化。全文分为四个部分,首先讨论了动态规划时间效率优化的可行性和必要性,接着给出了动态规划时间复杂度的决定因素,然后分别阐述了对各个决定因素的优化方法,最后总结全文。 [正文]一、引言动态规划是一种重要的程序设计方法,在信息
2015-03-30 14:05:00 571
转载 动态规划基本概念
基本思想动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目
2015-03-30 10:53:36 708
转载 观察者模式:推模式和拉模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述观察者(Observer)模式的: 观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这
2015-03-27 16:27:21 7164
转载 简单工厂、工厂方法、抽象工厂、策略模式、策略与工厂的区别
一、引子话说十年前,有一个爆发户,他家有三辆汽车(Benz(奔驰)、Bmw(宝马)、Audi(奥迪)),还雇了司机为他开车。不过,爆发户坐车时总是这样:上Benz车后跟司机说“开奔驰车!”,坐上Bmw后他说“开宝马车!”,坐上 Audi后他说“开奥迪车!”。你一定说:这人有病!直接说开车不就行了?!而当把这个爆发户的行为放到我们程序语言中来,我们发现C语言一直是通过这种方式来坐车的!幸
2015-03-26 16:37:55 458
转载 深入浅出UML类图
在UML 2.0的13种图形中,类图是使用频率最高的UML图之一。Martin Fowler在其著作《UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition》(《UML精粹:标准对象建模语言简明指南(第3版)》)中有这么一段:“If someone were to come up to
2015-03-26 16:36:15 423
转载 Can you remove elements from a std::list while iterating through it?
http://stackoverflow.com/questions/596162/can-you-remove-elements-from-a-stdlist-while-iterating-through-it#
2015-03-26 16:01:59 311
转载 STL中用ERASE()方法遍历删除元素
STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector 、deque);另一类是以不连续的节点形式存储的容器(如:list、set、map)。在使用erase方法来删除元素时,需要注意一些问题。 在使用 list、set 或 map遍历删除某些元素时可以这样使用:正确使用方法1 std::list List; std:
2015-03-26 15:43:51 254
转载 Android源码设计模式分析一期发布
http://blog.csdn.net/bboyfeiyu/article/details/44563871
2015-03-23 19:16:36 476
转载 Trace Function Enter, Exit and Leave
http://developer.nokia.com/community/wiki/Trace_Function_Enter,_Exit_and_Leave
2015-03-19 17:36:05 273
转载 为函数添加enter和exit级trace
日常开发中,我们为了辅助程序调试常常在每个函数的出入口(entry/exit)增加Trace,一般我们多用宏来实现这些Trace语句,例如:#ifdef XX_DEBUG_#define TRACE_ENTER() printf("Enter %s\n", __FUNCTION__)#define TRACE_EXIT() printf("Exit %s\n", __FUNCTIO
2015-03-19 14:54:14 338
转载 __VA_ARGS__用法
自定义调试信息的输出 调试信息的输出方法有很多种, 例如直接用printf, 或者出错时使用perror, fprintf等将信息直接打印到终端上, 在Qt上面一般使用qDebug,而守护进程则一般是使用syslog将调试信息输出到日志文件中等等... 使用标准的方法打印调试信息有时候不是很方便, 例如Qt编程, 在调试已有的代码时, 我想在打印调试信息的地方, 把代码位
2015-03-19 09:43:09 390
转载 可变参数函数
c/c++支持可变参数的函数,即函数的参数是不确定的。一、为什么要使用可变参数的函数?一般我们编程的时候,函数中形式参数的数目通常是确定的,在调用时要依次给出与形式参数对应的所有实际参数。但在某些情况下希望函数的参数个数可以根据需要确定,因此c语言引入可变参数函数。这也是c功能强大的一个方面,其它某些语言,比如fortran就没有这个功能。典型的可变参数函数的例子有大家熟悉
2015-03-19 09:40:10 497
转载 11个强大的Visual Studio调试小技巧
伯乐在线注:我们在@程序员的那些事 微博上推荐了英文原文,感谢@halftone_被禁用了 的热心翻译。简介调试是软件开发周期中很重要的一部分。它具有挑战性,同时也很让人疑惑和烦恼。总的来说,对于稍大一点的程序,调试是不可避免的。最近几年,调试工具的发展让很多调试任务变的越来越简单和省时。这篇文章总结了可能节省你大量时间的11个Visual studio的调试技巧和方法。
2015-03-19 08:40:59 340
转载 VS2005 VS2010数据断点不能设置的原因 new data breakpoint is disabled
数据断点是VS的一项犀利功能,尤其在我司这种代码量巨大的大型系统中,想知道一个被很多地方访问的类的变量是在什么时候被改变的是一件很困难的事情,使用数据断点能极大提高debug的效率。可昨天突然遇到了数据断点按钮变灰的情况,无法进行设置。 原因是因为,数据断点只能在break mode下使用,也就是说首先得设置一个普通的断点进入debug brea
2015-03-19 08:40:16 1477
转载 Visual Studio原生开发的20条调试技巧
最近碰巧读了Ivan Shcherbakov写的一篇文章,《11个强大的Visual Studio调试小技巧》。这篇文章只介绍了一些有关Visual Studio的基本调试技巧,但是还有其他一些同样有用的技巧。我整理了一些Visual Studio(至少在VS 2008下)原生开发的调试技巧。(如果你是工作在托管代码下,调试器会有更多的特性,在CodeProject中有介绍它们的文章),下面是
2015-03-19 08:37:02 594
转载 VS2012中有用的宏
预定义的宏列出预定义的 ANSI/ISO C99 和 Microsoft C++ 实现预处理宏。编译器识别预定义的 ANSI/ISO C99 C 预处理宏,Microsoft C++ 实现将提供更多宏。 这些预处理器宏不带参数,并且不能重新定义。 本文中所列的一些预定义宏用多个值进行定义。ANSI 兼容的预定义宏宏
2015-03-13 10:12:13 1376
转载 VS中的路径宏
说明$(RemoteMachine)设置为“调试”属性页上“远程计算机”属性的值。有关更多信息,请参见更改用于 C/C++ 调试配置的项目设置。$(References)以分号分隔的引用列表被添加到项目中。$(ConfigurationName)当前项目配置的名称(例如“Debug”)。$(PlatformName)当前项目平台的名称
2015-03-02 13:37:09 621
linux环境下,在程序中调用system执行ulimit命令不起作用
2016-10-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人