自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 谈谈“老鼠找毒水“和“猪找毒水”问题

一、问题描述1.老鼠找毒水有1000杯水,其中有一杯是毒水,现在需要从中找出含毒药的水,毒水可以混合,可以用老鼠来实验;老鼠如果喝了有毒的水,一个小时内会死,请问如何安排试验,能够用最少的实验材料在一个小时内检测出有毒的水?2.猪找毒水1000桶水,其中一桶有毒,毒水可以混合,猪喝毒水后会在15分钟内死去,想用一个小时找到这桶毒水,至少需要几头猪?仔细观察题目,其实区别就在与老鼠找毒水,老鼠只有2个状态,死和没死,猪找毒水,猪有5个状态,0-15min死,16-30min死,31-.

2020-06-11 10:55:06 2396

原创 从"hello world”到0xc000007b,System32与SysWow64

前几天下载了VS2019,建立了一个Hello world程序,结果在编辑x86程序弹出了0xc000007b这个错误,但是x64程序程序正常运行。相信应该不少同行都应该遇到这个问题,网上的大多数解决方案都是说Directx的问题,修复一下就好了,但其实一般都不Directx的问题。因为我是刚安装的VS2019,而且Directx运行库有没有问题,而且我发现使用x86,VS2019显示的调用路径去...

2019-10-22 22:11:47 259

原创 C++构造函数一点体会

关于C++构造函数,C++的相关书籍,网上也有很多介绍构造函数的内容,这里不多说关于构造函数的使用,主要分享一点构造函数的细节。1.没有显示的书写出构造函数,编译器将会默认构造函数。如果在一个类中,没有显示的书写出构造函数,没有显示的写出无参的构造函数,有参的构造函数,拷贝构造函数等,编译器将会自动生成一个默认的构造函数,这个默认的构造函数将会是一个无参的无实现的空构造函数,此时,程序可以...

2019-06-28 23:27:29 211

原创 Vector去掉重复数字(改变原来的排列顺序)

这几天在刷LeetCode其中遇到了一些技巧,把用到的技巧记录下来。Vector去掉重复数字,去掉Vector中的重复数字,先是第一种,这里改变原来容器的排列顺序。改变容器的排列顺序去重通过sort,unique,erase三个函数联合使用可以做到。首先定义一个vectorvector arr;再对vector排序,默认升序排列sort

2017-09-23 16:43:52 1289

原创 LaTex排版(一)

LaTex标题生成,一般论文的目录的标题只有3级标题,4级以下的标题可以使用(1),①等来表示,在目录里面只需要显示到3级标题。\section{1级标题}\subsection{2级标题}\subsubsection{3级标题}注意再上述标题下面的正文内容前面加上\par来表示空2格。其他的小标题类似(1),①可以通过\paragraph{(1)4级标题}~{

2017-07-16 11:47:39 1507

原创 OSG中LabelControl中文显示

OSG默认是不支持中文显示的

2016-12-20 21:38:50 1063

原创 C语言读写txt文件

1.往txt文件中写数据使用一个文件指针与fprintf函数#include #include using namespace std;struct Vertex{ float x,y,z;//定义一个顶点,包括X,Y,Z三个数据};void Write(){ vector m_Vertex; Vertex temp; FILE *pOut; pOut=fop

2016-08-28 18:55:46 2270

原创 C++继承

1.C++的继承对于继承首先说最常用的就是公有继承,私有继承与保护继承用的不太多,这里就只讨论公有继承。1.基类函数的构造函数与析构函数是无法继承的,其他的函数可以继承,如果基类里面的函数声明了关键字virtual,那么子类里面继承了该函数,继承的函数默认也为virtual,是否加上关键字virtual对函数没有影响,在C++多态的文章里面说过,子类是否加上关键字virtual不会有影响,

2016-06-05 21:54:01 422

原创 设计模式之Template Method模式(模板方法模式)

模板方法模式总结起来就是灵活运用C++的多态性,灵活运用普通函数,虚函数,纯虚函数的组合,打个比方,每个人每天的生活都不一样,老师要上课,学生要学习,程序员要编程,但是每个人都需要吃饭与休息,这样我们就可以吧吃饭与休息抽出了,在父类里面强制实现,不同的部分放在子类里面具体实现。在这里为了方便,就把函数的实现写在类里面了,就没有单独写在cpp文件里面了。1.定义公共功能的实现,无论学生,老师

2016-06-02 13:46:41 404

原创 设计模式之Static Factory模式(简单工厂模式)

简单工厂模式并不是GOF提出的23种设计模式中的一种。工厂模式有一种非常形象的描述,建立对象的类就如一个工厂,而需要被建立的对象就是一个个产品。适用场合1.在程序中,需要创建的对象很多,导致对象的new操作多且杂时,需要使用简单工厂模式;2.由于对象的创建过程是我们不需要去关心的,而我们注重的是对象的实际操作,所以,我们需要分离对象的创建和操作两部分,如此,方便后期的程序扩展和维护。

2016-06-02 10:42:35 878

原创 C++多态

C++多态是C++的一种基本机制,具体的实现多说,这里主要把我刚学时的一些困扰分享一下。1.多态能够调用的函数一定是指针指向的类,与具体的实例化的类无关。假设基类为A,B类继承了A类。先看2个类实例A类就是父类#pragma once#include class A{public: A(void); virtual ~A(void); virtual void ope

2016-06-01 11:47:15 323

原创 MapWinGIS编程(三)

1.关于MapWinGIS的鼠标响应机制在默认的状态下,MapWinGIS的鼠标响应是出于关闭状态,需要手动打开,找到SendMouseDown属性,把false改成true,这样,MapWinGIS控件就能响应鼠标点击事件的,相应的其他事件的属性也可以相应的打开。2.屏幕坐标转实际的经纬度

2016-05-24 08:51:43 2623 2

原创 C#读取目录下的某一格式的文件

有时在某一文件下存储了一系列的文件,比如图片jpg文件,这时我们想把这些文件的名字读取出来并且存储起来。1.定义一个存储变量,假设存储的是jpg文件List jpgname = new List();jpgname.Clear();2.遍历并存储string dirp = Path.Combine(Application.StartupPath, @"posed"); //有一个po

2016-05-23 16:34:25 1392

原创 C#读取txt文档并且存储

实际编程中读取txt文档用的很多,有时我们需要读取txt文档并且取出其中某一列进行计算。1.读取txt文档读取txt文档,使用ReadAllLines函数读取所有行,然后使用string[] 存储起来,每一行就是一个string变量。string[] Readtxt = File.ReadAllLines("数据.txt");2.遍历存储数据一般txt文档中使用的是空格分隔数据

2016-05-14 14:58:33 1080

原创 设计模式之Singleton模式(单例模式)

单例模式在实际编程中可以说是用到的最广泛的设计模式,在实际编程的过程中,我们对某些资源往往要求只能有一个实例,打个比方,在做C#开发时,每一个界面就是一个对象,对于这些窗体对象的操作,一般就是打开的窗体,对于窗体对象的操作就是单例模式的具体使用。单例模式其实就3点,(1)构造函数私有 (2)指向类的静态指针变量私有 (3)获取静态指针变量的公有函数1.定义单例类#pragma once

2016-05-12 09:45:58 320

原创 设计模式之Proxy模式(代理模式)

代理模式很容易理解,就是代理,打个比方,我们需要买水果,一般是去超市或者水果店买水果,很少有人去果园买水果,果园是生成水果的地方,但很少出售水果,这里,水果店,超市就成了代理。

2016-05-11 09:53:23 762

原创 设计模式之Strategy模式(策略模式)

在介绍策略模式之前,我们先来看看多态性。首先定义个父类,定义了所有的函数假设父类名为CStrategy#pragma onceclass CStrategy{public: CStrategy(void); virtual ~CStrategy(void); virtual void Operation()=0;};#include "Strategy.h"CSt

2016-05-05 15:25:41 324

原创 CVector3类

在计算图形学中三维向量的用处非常广泛,可以自定义一个CVector3类,主要是封装对三维向量的操作,在Cvector3中主要封装一下操作1.构造函数,初始化向量2.运算符重载,主要是加减乘除运算符重载。3.各种操作,比如数量积,向量积,单位化,求长度,按比例缩放等。#pragma once#include class CVector3{public: CVector3(v

2016-04-26 11:18:15 1336

原创 遗传算法(一)

遗传算法的应用及前景  遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,借鉴生物界适者生存、优胜劣汰遗传机制的进化规律演化而来的随机化搜索最优解的方法。最初由美国Michigan大学J.Holland教授于1975年提出。基于染色体群的并行搜索,带有猜测性质的选择操作、交换操作和突变操作。这种特殊的组合方式将遗传算法与其它

2016-04-25 14:17:48 919

原创 设计模式之Facade模式(外观模式)

Facade模式(外观模式),为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。 我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性。打个比方,我们去吃饭,要了一份西红柿炒鸡蛋,我们只关心最后西红柿炒鸡蛋能够端上了,并不关心具体怎么做的,比如洗西红柿,切西红柿,拌开鸡蛋,炒西

2016-04-22 10:17:52 438

原创 C#access数据库查询操作(二)

在前面介绍了access数据库的相关操作,这里介绍一下查询条件为变量的情况,比如用户从DataTimePicker控件中获取时间,传入时间,查询某一些时间段的数据当查询条件为变量时,SQL语言其实与常量一样,关键是格式问题,说具体点就是当数据库字段为数字或者文本时引号的摆放与拼接问题,一.输入查询变量1.数据字段为数字类型查一个值 int num1 = 1; oleD

2016-04-21 09:51:58 4387 1

原创 C#access数据库查询操作(一)

数据库有增,删,改,查等操作,但在实际数据库的应用过程中,查询实际上是应用的最多的一种对数据库的操作方式。1.首先要说一个问题就是,在数据库的定义过程中,表里的字段的数据类型强烈建议按照数据类型定义,比如access里有一个字段为年龄,本来可以定义为int数据类型,这是最好的,当然定义成文本类型也可以用,但非常不建议这样做,这样在实际编码过程中会遇到一些很烦的问题,我就亲身经历过,明明是数字类

2016-04-20 17:17:45 20610

原创 交换排序

#include int array[10]={160,96,48,47,76,57,54,36,24,91};void Exchange(int arr[],int n){ int k=0,temp=0; for(int i=0;i<n;i++) { k=i; for(int j=i+1;j<n;j++) {

2016-04-19 15:38:31 297

原创 插入排序

#include int array[10]={160,96,48,47,76,57,54,36,24,91};void Insert(int arr[],int n){ int temp=0,j=0; for(int i=1;i<n;i++) { temp=arr[i]; for(j=i-1;j>=0&&temp<arr[j];j--) { arr[j+1]=arr

2016-04-19 15:31:25 224

原创 冒泡排序

#include int array[10]={34,44,1,32,44,78,3,37,8,90};void maopao(int arr[],int n){int t=0;for(int i=0;i{for(int j=n-1;j>=0;j--){if(arr[j-1]>arr[j]){t=arr[j-1];arr[j-1]=arr[j];

2016-04-19 15:27:35 186

原创 C#拾遗(一)

在实际工作中用到的一些零碎的知识记录下来1.拼接路径有时需要调用路径,把某一个文件放在某处,拼接路径生成一个路径放在执行目录下 string Path = Path.Combine(Application.StartupPath, @"XXX.XXX"); Application.StartupPath就是DEBUG目录下2.TreeView添加树节点TreeView

2016-04-19 10:08:25 385

原创 for循环问题

在for循环中对于循环体加上括号把代码体括起来是一个很好的习惯,可有时候不把代码体括起来也可以,如果不把代码体括起来只会执行一句话,原来一直理解错了。1.加上括号情况 for(int i=0;i<10;i++) { printf("第一句话执行%d次",i); //从上往下依次执行 printf("第二句话执行%d次",i); //从上往下依次执行 }

2016-04-17 19:17:28 342

原创 约瑟夫环链表解决算法

1.起源        据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的朋友并不想遵从。首先从一

2016-04-14 16:33:26 1472

原创 求取迷宫所有路径

int maze[9][9]={{2, 2, 2, 2, 2, 2, 2, 2, 2},{2, 0, 0, 0, 0, 0, 0, 0, 2},{2, 0, 2, 2, 0, 2, 2, 0, 2},{2, 0, 2, 0, 0, 2, 0, 0, 2},{2, 0, 2, 0, 2, 0, 2, 0, 2},{2, 0, 0, 0, 2, 0, 2, 0, 2},{2, 2, 0,

2016-04-13 15:50:14 1322

原创 求最大公约数与最小公倍数

1.求最大公约数就是用辗转相除法即可,反复相除即可int fun1(int a,int b){ int r=0; while(b!=0) { r=a%b; //a与b的大小关系不影响顺序 a=b; b=r; } return a;}2.最小公倍数等于2个数相乘除以最大公约数int fun2(int a,int b){ return (a*b)/fun1(a

2016-04-13 15:34:58 259

原创 生命游戏

生命游戏是英国数学家约翰·何顿·康威在1970年发明的细胞自动机。它最初于1970年10月在《科学美国人》杂志中马丁·葛登能(Martin Gardner,1914年11月21日-2010年5月22日。又译:马丁·加德纳)的“数学游戏”专栏出现。#include #include #include int Cell[10][10];int Temp[10][10];void Init

2016-04-13 14:25:15 526

原创 八皇后问题

八皇后是一个古老的数据结构问题,在一个8*8的国际象棋棋盘上放置8个皇后,使之不互相攻击,问有多少种解法,这个问题是高斯提出来的,当时高斯算出了76种解法,实际上8皇后有92种解法,借助现在的计算机攻击可以很好的计算出来,通过递归算法可以算出来。#include #include int Queen[8];static int Count=0;//定义一个数组放置皇后,Queen[i]=j

2016-04-11 14:39:08 356

原创 C#分隔符

C#在实际使用过程中读取一系列数据时,有时一系列数据我们只需要使用其中的某一部分,可以用C#分隔符可以达到效果。List Save = new List();如果Save存储了一系列数据,现在需要把这一系列字符截断取出。首先定义一个  List NewSave存储List NewSave = new List();再循环生成并存储,在循环生成存储是定义一个string数组临时存

2016-04-07 14:27:42 2504

原创 C#使用DevExpress与panel的加载

1.在实际的开发过程中使用了DevExpress控件库,又使用的panel面板控件,自定义控件,把面板加载到指定的位置,比如上面,下面,左边,右边等位置。加载面板最重要的是确保窗体是同一个对象,1.定义一个单例类,在这个类中,所有的窗体都声明一个对象,然后在窗体初始化时,把这个对象赋值,确保了窗体只有唯一的对象using System;using System.Collections

2016-03-16 16:57:49 2929

原创 二叉排序树的建立与遍历

二叉排序树其实是一种排列方式,现在给定一系列的数,通过建立一个二叉树,然后对二叉树进行中序遍历即可对二叉树从小到大进行排列。二叉树大小节点大小:左节点的数据1.定义二叉树数据结构我们采用int类型的作为节点内容typedef struct node{ int data; //节点数据 struct node* left; //节点左指针

2016-03-02 17:30:45 1376 1

原创 C#递归遍历树节点并且存储

前面介绍了TreeView控件生成树,TreeView控件在C#开发中用处很广泛,这里就把我再实际使用的过程中用到的方法总结一下。1.点击TreeView某一节点,将该节点所有子节点遍历存储。比如我们想知道父节点下的所有子节点。我们首先定义一个List 来存储节点List m_SubNode = new List();递归遍历节点并且存储子节点private voi

2016-03-02 10:40:00 9235

原创 XP与Win7默认下时间分隔符不同

用C#做应用开发,做了一个读取access数据库的模块,我的是Win7的系统,access数据库中有一个时间字段,时间是按照 年/月/日 的格式排列的,开始是需要把年的字段取出来,去掉月与日的数据,于是我使用了C#的split()分隔函数取出年字段。string[] Year = m_Time[i].Split('/');Year[0]就是年的数据。但是后来用了其他的机器上

2016-03-02 10:00:18 572

原创 C#应用开发与单例模式

C#应用开发中需要使用到较多的类,比如一个用户控件都是一个类,在操作这些东西时,我们往往需要确保这些自定义的用户控件只能有一个实例,在这里,单例模式就显得比较重要1.单例模式类public class SearchResult    {//上面定义了单例模式类        private static SearchResult _instance = null;

2016-02-29 16:29:12 422

原创 C#连接access数据库

在实际编程中用到了C#连接access数据库。1.定义数据类型OleDbConnection conn; //连接数据库的对象OleDbDataAdapter oleDapAdapter; //检索与填充数据,一般填充SQL语句DataSet ds = new DataSet(); //填充ds,保存数据2.初始化public void Init(){

2016-02-29 16:18:03 823

原创 C#TreeView控件与XML相关操作

在C#的应用开发中,TreeView控件是一种比较常用的控件,主要反映了父子节点之间的关系,由于TreeView控件与XML文件的组织结构比较类似,可以把TreeView控件与XML文件结合使用。TreeView控件普通操作,先定义节点,再插入节点,这里就不在赘述。主要介绍TreeView与XML文件一起使用的方法。       1.生成XML文件。       假设现在已经知道各个节点的

2016-02-29 15:44:17 4702

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除