10 2014 档案
摘要:Go To Cell 利用QT Desinger做好界面后加入的代码有gotocelldialog.h#ifndef GOTOCELLDIALOG_H#define GOTOCELLDIALOG_H#include #include "ui_gotocelldialog.h"class GoToCe...
阅读全文
摘要:Find对话框实现 平台 Qt5.3.2 MinGW4.8.2注意创建时用QDialogfinddialog.h#ifndef FINDDIALOG_H#define FINDDIALOG_H#include #include #include #include #include #include ...
阅读全文
摘要:注:下面的解法中都没有考虑超大数,就是无法直接表示的数。如果有的话需要自己定义超大数,并定义相应的操作。#include //辗转相除法 缺点求余操作用到除法 非常耗时int gcd1(int x, int y){ return (!y) ? x : gcd1(y, x % y); //不需要...
阅读全文
摘要:题目: 给一个有限小数 或者 无限循环小数, 用分母最小的方式用分数精确的表达这个数字。 括号中表示循环部分,如:0.3 , 0.3(3), 0.3(0)思路:我一看,傻眼了,想了两下不想想了,就在网上找循环小数转分数,结果居然是小学奥赛题!我郁闷的很啊.....拿 1.2(34)来举例子吧1.2(...
阅读全文
摘要:这个已经看过几遍了,列一下各种解法。#include //n&(n-1) 每次消去最低位的1//算法复杂度与2进制中1的个数有关int numOfOne(unsigned int n){ int num = 0; for(;n; n = n & (n - 1), num++); r...
阅读全文
摘要:题目1:找出n!中末尾0的个数。#include //输入n 输出n!中末尾0的个数//分析:只需要知道n!中质因子5出现了多少次 因为2*5 = 10 因子2比5多 只需要关注5//方法1: 对1...n的每个数字 循环除以5 相加得到总共因子5的个数 //注意:像25这样的数字提供了2个5int...
阅读全文
摘要:在三个月前 我就在纠结 C++ GUI Qt 4编程这本书中2.3节 快速设计对话框这一段。 按照书上的做没有办法生成能够成功运行的程序。这两天又折腾了好久,终于成功了。注意事项:1. 我之前装过Qt 5.3.0 又卸载了 结果运行总是有错误, 后来又装了Qt 5.3.2 的MinGW4.8.2的版...
阅读全文
摘要:做个小总结:如果拿现实生活中的东西比喻,那么关键段、互斥量、事件、信号量都是什么呢?感觉事件像是个暂停继续键,WaitForSingleObject 是暂停SetEvent 是 继续 可以多次的按继续 但是如果中间没有过暂停的化没有意义继续的目的是为了等条件满足,所以事件的意义在于找到线程之间的等...
阅读全文
摘要:给一个数组,找出其中一对和为sum的数字。由于已经做过排好序的数组,找和为sum的题目。所以完全没有过多考虑就排了序,左右指针相互收缩着寻找。跟答案上的方法也是一样的。/*start time = 16:57end time = 17:15*/#include #include using name...
阅读全文
摘要:内容来自:http://blog.csdn.net/morewindows/article/details/7823572一.什么是“遗弃”问题在之前讲到了互斥量能处理“遗弃”问题,下面引用原文:互斥量常用于多进程之间的线程互斥,所以它比关键段还多一个很有用的特性——“遗弃”情况的处理。比如有一个占...
阅读全文
摘要:以下内容来自:http://blog.csdn.net/morewindows/article/details/7650574 前面我们使用事件和一个记录读者个数的变量来解决读者写者问题。问题虽然得到了解决,但代码有点复杂。本篇将介绍一种新方法——读写锁SRWLock来解决这一问题。读写锁在对资源...
阅读全文
摘要:以下内容来自:http://blog.csdn.net/morewindows/article/details/7650470上面的文章讲解了在Windows系统下实现多线程同步互斥的方法,为了提高在实际问题中分析和思考多个线程之间同步互斥问题的能力,接下来将讲解PV操作,这也是操作系统中的重点和难...
阅读全文
摘要:预备知识:函数名: vfprintf功 能: 格式化的数据输出到指定的数据流中用 法: int vfprintf(FILE *stream, char *format, va_list param);函数说明:vfprintf()会根据参数format字符串来转换并格式化数据,然后将结果输出到参数s...
阅读全文
摘要:有若干个互不相等的无序的数,怎么选出其中最大的k个数。我自己的方案:因为学过找第k大数的O(N)算法,所以第一反应就是找第K大的数。然后把所有大于等于第k大的数取出来。写这个知道算法的代码都花了2个多小时,反思,太慢了。 注意边界条件,不要混混沌沌的。/************我自己的解法*****...
阅读全文
摘要:内容来自:http://blog.csdn.net/morewindows/article/details/7577591我们来看看生产者消费者问题及读者写者问题。生产者消费者问题是一个著名的线程同步问题,该问题描述如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费...
阅读全文
摘要:内容来自:http://blog.csdn.net/morewindows/article/details/7538247用的线程同步互斥机制——关键段、事件、互斥量、信号量。下面对它们作个总结,帮助大家梳理各个知识点。首先来看下关于线程同步互斥的概念性的知识,相信大家通过前面的文章,已经对线程同步...
阅读全文
摘要:下面内容来自:http://blog.csdn.net/morewindows/article/details/7481609前面介绍了关键段CS、事件Event、互斥量Mutex在经典线程同步问题中的使用。本篇介绍用信号量Semaphore来解决这个问题。首先也来看看如何使用信号量,信号量Sema...
阅读全文
摘要:这道题其实是做过了的,在http://www.cnblogs.com/dplearning/p/3921535.html中但是再次做还是相当的糟糕。又看了一遍答案。关键:要求每一位上1的个数, 其任意一位上1的个数受当前位、高位、低位三方面的影响。 注意这三位怎么求,注意数据类型。注意循环条件。#i...
阅读全文
摘要:以下内容来自:http://blog.csdn.net/morewindows/article/details/7470936前面介绍了关键段CS、事件Event在经典线程同步问题中的使用。本篇介绍用互斥量Mutex来解决这个问题。互斥量也是一个内核对象,它用来确保一个线程独占一个资源的访问。互斥量...
阅读全文
摘要:内容来自:http://blog.csdn.net/morewindows/article/details/7445233本篇介绍用事件Event来尝试解决这个线程同步问题。首先介绍下如何使用事件。事件Event实际上是个内核对象,它的使用非常方便。下面列出一些常用的函数。第一个CreateEven...
阅读全文
摘要:内容来自:http://blog.csdn.net/morewindows/article/details/7442333在来个复杂点的。这个问题涉及到线程的同步和互斥,是一道非常有代表性的多线程同步问题,如果能将这个问题搞清楚,那么对多线程同步也就打下了良好的基础。程序描述:主线程启动10个子线程...
阅读全文
摘要:预备知识:volatile关键字详解volatile总是与优化有关,编译器有一种技术叫做数据流分析,分析程序中的变量在哪里赋值、在哪里使用、在哪里失效,分析结果可以用于常量合并,常量传播等优化,进一步可以消除一些代码。但有时这些优化不是程序所需要的,这时可以用volatile关键字禁止做这些优化。1...
阅读全文
摘要:预备知识:__stdcall是函数调用约定的一种,函数调用约定主要约束了两件事: 1.参数传递顺序 2.调用堆栈由谁(调用函数或被调用函数)清理 常见的函数调用约定:stdcall cdecl fastcall thiscall naked call__stdcall表示 1.参数从右向左压...
阅读全文
摘要:3Dvoid setup(){ size(500,500,P3D);}void draw(){ background(0); lights(); noStroke(); translate(250,400,-500); rotateY(PI/6); box(500,100,500); ...
阅读全文
摘要:translate(x,y); 移动坐标原点到x,y处rotate(angle); 坐标沿原点顺时针转动angle度scale(n); 绘制图像放大n倍pushMatrix() 将当前坐标压入栈popMatrix() 将坐标弹栈------------------------------------...
阅读全文
摘要:学习http://blog.csdn.net/column/details/killthreadseries.html系列的笔记做为小白果然是要从头学起...预备知识:HANDLE(句柄)是Windows操作系统中的一个概念。在Windows程序中,有各种各样的资源(窗口、图标、光标等),系统在创建...
阅读全文
摘要:鼠标响应: mouseX, mouseY 鼠标的坐标----------------------------------------------void setup(){ size(300,300); smooth(); background(200);}void draw(){ fill(...
阅读全文
摘要:函数:绘制直线自由图形:beginShape(), vertex(), endShape() 分别是绘制图形开始,连接图形的节点,绘制结束 endShape(CLOSE)表示闭合图形。绘制曲线边框自由图形:beginShape() 开始绘制vertex() 图形起始端点bezierVertex(cx...
阅读全文
摘要:今天无意间发现的processing 很有兴趣 实现很简洁void setup(){}void draw(){ background(255); if(mouseX height/2) { fill(0); rect(0,height/2,width/2,height/2); ...
阅读全文
摘要:主要难度在于何时插入换行学习到的:①vector 可以像数组一样用 不一定要用迭代器代码及注释如下:#include#includeusing namespace std;typedef struct BiTree{ BiTree * pLeft, * pRight; int data;...
阅读全文
摘要:转自:http://blog.csdn.net/vast_sea/article/details/8167968看上去似乎任何已知的算法都无法做到,如果谁做到了,那么所有的排序方法:QuickSort,ShellSort,HeapSort,BubbleSort等等等等,都可以扔掉了,还要这些算法干吗...
阅读全文
摘要:48.微软(运算):一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5}是由{6,5,4,3,2,1}左移两位形成的,在这种数组中查找某一个数。我的思路:非常麻烦:先是用二分法找最大的数的位置,再定位要找的数在哪个递减区间里,最后用普通的二分查找法找到。代码如下:/*48.微软(...
阅读全文