2012年1月11日

【转】C/C++中的日期和时间

摘要: 头文件 time.h 函数用途 函数名 得到处理器时间 clock 得到时间差 difftime 设置时间 mktime 得到时间 time 得到以ASCII码表示的时间 asctime 得到字符串表示的时间 ctime 得到指定格式的时间 strftime 摘要: 本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。 关键字: UTC(世界标准时间),Calendar Time(日历时... 阅读全文

posted @ 2012-01-11 21:29 小田的专栏 阅读(235) 评论(0) 推荐(0) 编辑

2012年1月10日

【100题】第十四题(数组中找两个数使其和等于输入数)

摘要: 一,题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。二,题目难点在于时间复杂度控制在O(n)三,方法一 1,分别从数组前,数组后向中间查找。直到前后相遇!! 2,当前得到currentSum>sum说明:大的数太大(数组递增,后面的数太大)。应该将指向最后的标记向前挪动 3,当前得到currentSum<sum说明:大的数太小(数组递增,前面的数太小)。应该将... 阅读全文

posted @ 2012-01-10 00:11 小田的专栏 阅读(311) 评论(0) 推荐(0) 编辑

2012年1月7日

【c++ Primer 】 4.10复习题 12题(int)、(int&)和(int*)

摘要: (1)首先通过一个例子看(int)和(int&)的区别:float a = 1.0f;cout << (int)a << endl;cout << (int&)a << endl;cout << boolalpha << ( (int)a == (int&)a ) << endl; // boolalpha 用符号形式表示真假float b = 0.0f;cout << (int)b << endl;cout << (int&)b <&l 阅读全文

posted @ 2012-01-07 22:26 小田的专栏 阅读(187) 评论(0) 推荐(0) 编辑

腾讯VS百度

摘要: 送给那些即将找工作的人1 文化百度提倡“简单,可依赖”,我的理解是做出来的产品要靠谱,要有很好的用户体验。以搜索起家的百度,对产品质量相当看中,因为当用户认定你做得不好,没口碑后可立马更换搜索引擎。公司设有专门的质量部门,各个产品都会配备有QA人员,负责产品质量。从每年校招也能看出来,做测试的比例大概是研发的二分之一。而腾讯提倡“拿来主义”、“微创新”。腾讯很多产品都是抄袭别人的,然后再想办法在此基础上做一些适应性改变,并称其为“微创新”。由于腾讯IM软件的用户粘性比搜索引擎强太多(从3Q大战就能看出来),他不会像百度一样强调产品质量,测试人员较少,公司强调快速跟进市场,抢占市场,动作比传统大 阅读全文

posted @ 2012-01-07 00:15 小田的专栏 阅读(263) 评论(0) 推荐(0) 编辑

2012年1月5日

【GTK】信号量(signal)大全

摘要: 信号函数:gint gtk_signal_connect(GtkObject *object,gchar *name,GtkSignalFuncfunc,gpointer func_data);回掉函数的格式:void callback_func(GtkEidget *widget,gpointer callback_data);GTK的事件:gtk组件的行为或者X服务器发送的事件可以与下列事件联系起来:button_press_event 按钮按下button_release_event按钮释放motion_notify_event鼠标移动delete_event使用窗口管理器关闭dest. 阅读全文

posted @ 2012-01-05 14:26 小田的专栏 阅读(5071) 评论(2) 推荐(2) 编辑

【GTK3.0】背景设置

摘要: 由于GTK 3.0将许多GTK 2.0的API都丢弃,转到GTK 3.0下编译后有些不适应,所以感觉能在GTK 3.0下调试成功这个Demo还是很成功的。源码#include <gtk/gtk.h> int main( int argc, char *argv[]) { GtkWidget *window; GtkWidget *layout; GtkWidget *image; GtkWidget *button; gtk_in... 阅读全文

posted @ 2012-01-05 09:34 小田的专栏 阅读(1626) 评论(0) 推荐(1) 编辑

2011年12月31日

【C++ Primer】第四章学习笔记 (复合类型)

摘要: 一,数组 1,数组只有在定义时候才能使用初始化,不能将一个数组赋给另一个数组。 int a[4]={1,2,3,4};//正确 int a[4]; a[4]={1,2,3,4};//不正确 int b[4]=a;//不正确 2,初始化数组时候,提供少于数组元素数目的部分数值,则将剩余赋值为0; float a[5]={1,2}; 3,如果初始化数组时候,方括号内[ ]为空。C++编译器将计算元素个数。 short a[ ]={1,2,3,4,5}; int number=sizeof(a)/sizeof(short);//计算元素个数(可见字符个数) chara[]={'a', 阅读全文

posted @ 2011-12-31 00:50 小田的专栏 阅读(197) 评论(0) 推荐(0) 编辑

2011年12月28日

【100题】第十三题(输出倒数第k个节点)

摘要: 一,题目:输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针。二,分析:这是某一年的考研试题中,数据结构的一个题。题目本身难度不大。三,思路:设置两个指针p1,p2; p1=head; p2=head; 先让p2向前走k步,然后同时让p1,p2向后走。 当p2走到头的时候,p1所指的节点就是所求节点。四,源码:#include "stdio.h" #include "malloc.h" struct node { int data; node *next; }; node* fun(node *hea... 阅读全文

posted @ 2011-12-28 00:40 小田的专栏 阅读(195) 评论(0) 推荐(0) 编辑

2011年12月27日

【100题】第十二题(特殊的递加)

摘要: 一,题目:求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。二,分析:循环只是让相同的代码执行n遍而已,我们完全可以不用for和while达到这个效果。比如定义一个类,我们new一含有n个这种类型元素的数组那么该类的构造函数将确定会被调用n次。我们可以将需要执行的代码放到构造函数里。三,这是一类纯技巧性的题目,主要考察对语言技巧的熟练程度。 源码一: #include "stdio.h"int sum(int n){ int val = 0; n > 0 && (v 阅读全文

posted @ 2011-12-27 00:35 小田的专栏 阅读(144) 评论(0) 推荐(0) 编辑

2011年12月26日

【GTK】窗口停靠

摘要: 源码:#include <gdk/gdkcursor.h> #include <gtk/gtk.h> #define TEST_W 100 #define TEST_H 80 gboolean drag = FALSE; // 只在左键按下时拖动窗体 gboolean hide = FALSE; // 只在左键按下时拖动窗体 int nX = 0; int nY = 0; GtkWidget *window; static gint button_press_event(GtkWidget * widget,GdkEventButton * event, gpointe 阅读全文

posted @ 2011-12-26 12:41 小田的专栏 阅读(1403) 评论(0) 推荐(0) 编辑

【GTK】如何得到控件的位置

摘要: 不同的情况对应有不同的解决的办法.如果你想得到一个控件相对于它的父窗口的位置,你需要使用widget->allocation.x 和 widget->allocation.y.如果你想的到一个窗口相对于X主窗口(X root window)的位置, 你应该使用gdk_window_get_geometry() gdk_window_get_position() 或者gdk_window_get_origin().如果你想得到一个窗口(包括WM修饰的窗口)的位置,应该使用gdk_window_get_root_origin().最后但不是不重要,如果你想得... 阅读全文

posted @ 2011-12-26 11:55 小田的专栏 阅读(1174) 评论(0) 推荐(0) 编辑

2011年12月25日

GTK之任意拖动窗口中的按钮

摘要: 一,任意拖动窗口中的按钮源码:#include <gtk/gtk.h> GtkWidget *window; GtkWidget *fixed; GtkWidget *button; gboolean drag = FALSE; // 只在左键按下时拖动窗体 gint nX = 0; gint nY = 0; void destroy(GtkWidget *widget, gpointer *data) { gtk_main_quit(); } static gint button_press_event(GtkWidget * widget,GdkEventButton *... 阅读全文

posted @ 2011-12-25 23:21 小田的专栏 阅读(1469) 评论(0) 推荐(0) 编辑

【100题】第十一题(二叉树中节点的最大距离)

摘要: 一,题目: 如果把二叉树看成一个图,父子节点之间的连线看成是双向的(无向图),定义"距离"为两节点之间边的个数。写一个程序,求一棵二叉树中相距最远的两个节点之间的距离。二,思路 误导思路:不要以为求树的高度。 正确思路:求“图”中任意两个节点之间,相距最远的的两个节点之间的距离。 求解步骤:A,经过根节点,左边最深的点到右边最深的点的距离。 B,不经过根节点,而是左子树或右子树中最大距离,取其大者。三,图解情况A: 情况B: A A / \/ \ B C B O / \ / \ / \ D E F G C D/\ E F /\ G H情况A:最大距离经过顶点D-B-A-C- 阅读全文

posted @ 2011-12-25 00:41 小田的专栏 阅读(224) 评论(0) 推荐(0) 编辑

2011年12月21日

GTK中 ToolBar详细说明

摘要: 工具栏(Toolbars)常用来将一些构件分组,这样能够简化定制它们的外观和布局。典型情况下工具栏由带图标和标签以及工具提示的按钮组成,不过,其它构件也可以放在工具栏里面。最后,各工具栏组件可以水平或垂直排列,还可以显示图标或标签,或者两者都显示。用下面的函数创建一个工具栏(可能有些人已经猜到了):GtkWidget *gtk_toolbar_new( void );创建工具栏以后,可以向其中追加、前插和插入工具栏项(这里意指简单文本字符串)或元素(这里意指任何构件类型)。要想描述一个工具栏上的对象,需要一个标签文本、一个工具提示文本、一个私有工具提示文本、一个图标和一个回调函数。例如,要前插 阅读全文

posted @ 2011-12-21 15:43 小田的专栏 阅读(974) 评论(0) 推荐(0) 编辑

GTK+图形化应用程序开发学习笔记(七)—标签构件.事件盒构件

摘要: 一、标签构件 标签构件(GtkLabel)是GTK中最常见的构件,它是静态的不可编辑的字段。在屏幕上,常常用标号说明其他字段。在按钮上设置标签用来说明按钮,或者放在其他字段的旁边对该字段提供说明。它不能自身引发信号。 用gtk_label_new创建标签构件:1.名称::gtk_label_new功能:创建标签构件头文件:#include <gtk/gtk.h>函数原形:GtkWidget gtk_label_new(char *str);参数:str 标签构件正文返回值:新的标签构件 下面就是创建标号的程序例子:/*label1.c*/#include <gtk/gtk.h 阅读全文

posted @ 2011-12-21 15:13 小田的专栏 阅读(963) 评论(0) 推荐(0) 编辑

GTK+图形化应用程序开发学习笔记(六)—按钮

摘要: 一、常用构件函数 最常用的构件是按钮构件、录入字段构件、列表框构件和复合框构件。所有建立按钮的函数返回指向GtkWidget的指针。GtkWidget指针能够调用对构件进行操作的通用函数。函数gtk_widget_show是通用函数的例子。 由于建立的构件是通用的构件,需要将它转换为正确的类型以适合调用更为专用的函数。如:建立按钮函数返回GtkWidget指针,但是专用的按钮子程序要求GtkButton指针。所有在调用专用的按钮函数以前,需要使用GTK_BUTTON宏将通用的GtK_Widget指针转换为GtKButton指针。 二、按钮 按钮时最简单的构件,因为它们的最常用功能是允许用户点击 阅读全文

posted @ 2011-12-21 14:53 小田的专栏 阅读(508) 评论(0) 推荐(0) 编辑

GTK+图形化应用程序开发学习笔记(五)—组装盒、组合表、固定容器构件

摘要: GTK+图形化应用程序开发学习笔记(五)—组装盒、组合表、固定容器构件一、组装盒 组装盒(GtkBox)也称为组合构件。使用组装盒可以将多个构件放在一个容器中。容器可以把组装盒看作是一个构件。不像按钮构件,组装盒在屏幕上时看不见的。事实上,它们是同时跟踪若干子构件的不可见容器。组装盒分为纵向组装盒和横向组装盒。纵向组装盒在垂直方向堆积构件,横向组装盒沿水平方向堆积构件。 使用gtk_vbox_new函数建立纵向组装盒,使用gtk_hbox_new函数建立横向组装盒。在建立组装盒以后,可以使用gtk_box_pack_start函数或gtk_box_pack_end函数将构件放到组装盒中。为了显 阅读全文

posted @ 2011-12-21 14:05 小田的专栏 阅读(709) 评论(0) 推荐(0) 编辑

GTK+图形化应用程序开发学习笔记(四)—容器、构件

摘要: 一、构件 上一章我们介绍了如果创建一个窗体,但应用程序仅有一个窗体是不够的我们必须在窗体上添加一些东西(如:按钮,文本框等)。这些东西被称为构件,而我们添加的构件的载体被称为容器(如:主窗体)。构件(GtkWidget)有一些统一的函数对其操作,通常情况下我们定义一个GtkWidget类型的构件指针。再根据不同的需要进行转换。添加一个构建分5个步骤。 1、建立构件,并取得GtkWidget指针。 2、对构件设置回呼函数。一些构件不能有回调函数;一些构件不需要回调函数;但是,许多构件用回调函数与用户进行对话。 3、设置构件的特性。例如,对按钮设置标号,或使标号左对齐等。有时可以用建立构件的函数设 阅读全文

posted @ 2011-12-21 14:03 小田的专栏 阅读(617) 评论(0) 推荐(0) 编辑

GTK+图形化应用程序开发学习笔记(三)—窗体

摘要: 一、初始化GTK+ 写GTK+程序需要调用gtk_init函数对GTK+库函数进行初始化。1.名称::gtk_init功能:初始化GTK+库头文件:#include <gtk/gtk.h>函数原形:void gtk_init(int *argc,char ***argv);参数:argc指向主函数argc的指针argv指向主函数argv的指针返回值:无在你程序使用到GTK+工具库之前,必须对它进行初始化。gtk_init可以初始化GTK+工具库。gtk_init的参数的指向主函数argc,argv的指针,它可以改变一些不满足GTK+函数要求的命令行参数。 因为gtk_init函数没 阅读全文

posted @ 2011-12-21 14:02 小田的专栏 阅读(656) 评论(0) 推荐(0) 编辑

GTK+图形化应用程序开发学习笔记(二)—Glib库

摘要: 在学习GTK+之前我们需要先学习一下 glib的有关知识。因为我们将会在以后的学习中遇到这些知识。由于本笔记不是专门介绍glib的,所以下面的介绍不会太详细。一、什么是glib库 glib库是linux平台下最常用的c语言函数库,它具有很好的可移植性和实用性。glib是gtk+库和gnome的基础。glib的各种实用程序具有一致的接口。glib为许多标准的、常用的C语言结构提供了相应的替代物。它的编码风格是半面向对象,标识符加了一个前缀“g”,这也是一种通行的命名约定。使glib库的程序都应该包含glib的头文件glib.h。如果程序已经包含了gtk .h则不需要再包含glib.h。 二、gl 阅读全文

posted @ 2011-12-21 14:01 小田的专栏 阅读(1862) 评论(0) 推荐(0) 编辑

导航