自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CodingStart

只有不断记录自己的学习,才能每天提醒自己:你又进步了!

  • 博客(195)
  • 资源 (2)
  • 问答 (5)
  • 收藏
  • 关注

原创 数据结构与算法---贪心算法

假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。示例 1:输入: g = [1,2,3], s = [1,1]输出: 1解释:你有三个孩子和两块小饼干,3个孩子的胃口值分别是:1,2

2020-11-03 23:04:07 772

原创 QT-编译报库错误(LF/CRLF)

编译报一堆QT库异常

2024-04-17 17:03:15 487

原创 error: C2001: 常量中有换行符

VS编译报错:warning: C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失error: C2001: 常量中有换行符error: C2146: 语法错误: 缺少“)”error: C2146: 语法错误: 缺少“;”解决办法只要在末尾加一个空格,让最后一个中文汉字与双引号隔开,这样便不会再报错。...

2021-03-31 11:57:59 1495

原创 全局变量可以声明定义在头文件中吗?

头文件中不可以放变量的定义!!!一般情况下头文件中只放变量的声明,因为头文件要被其他文件包含(即#include),如果把定义放到头文件的话,就不能避免多次定义变量,C++不允许多次定义变量,一个程序中对指定变量的定义只有一次,声明可以无数次。三种例外:1.值在编译时就已知的const 变量的定义可以放到头文件中如:const int num(10);2.类的定义可以放到头文件中3.inline 函数这三个实体可以定义在多个源文件中,只要在每个源文件中的定义相同。

2021-03-16 09:28:44 4062

原创 GB2312与UTF-8编码转换 C++

旨在进行http传输中文字符,将中文字符转为UTF-8进行传输;#include<iostream> #include<stdio.h> #include<windows.h>using namespace std;string UrlUTF8(char* str);void GB2312ToUTF_8(string& pOut, char* pText, int pLen);void Gb2312ToUnicode(WCHAR* pOut

2021-03-11 15:14:30 1313

原创 《Effective Cpp》Item 2: 用 consts, enums 和 inlines 取代 #defines

理解用编译器取代预处理器const 取代 definedefine编译代码时,在预处理阶段进行宏替换,直接进行内容替换,编译器不会将定义的宏添加到符号表。所以如果有编译错误时,不会提示宏错误而是提示宏的具体内容。举例:#define ASPECT_RATIO 1.653此处,编译的时候,ASPECT_RATIO 不会添加到符号表,而是在代码的每一处都会有一个 1.653,如果报错,那么也会有多处报错,提示是1.653这块出了问题,而不是ASPECT_RATIO 这里出了问题。同样在debug

2021-01-08 20:13:51 166 1

原创 LGPL 与GPL的区别

GPL(GNU General Public License)我们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商业软件公司开发的免费软件了。GPL协议的主要内容是只要在一个软件中使用("使用"指

2021-01-07 19:42:52 1226

原创 《Effective Cpp》Item 20 用 pass-by-reference-to-const(传引用给 const)取代 pass-by-value(传值)

来源:https://www.ctolib.com/docs//sfile/effective-cpp/22.html对于类型传参,尤其是面向对象特征的语言,有这样几个特征需要注意:1、子类对象 has a 父类对象(如果接收参数为父类,实参为子类,会存在子类对象部分信息丢失);2、自定义对象(Class/Struct)的传值会调用拷贝构造/构造函数;对于自定义类型建议传引用传引用可避免创建很多临时对象,减少不必要的开销(参考注意事项2);传引用方式避免切断问题(参考注意事项1);注意:传引

2020-12-10 19:51:47 94

原创 《Effective Cpp》Item1:将C++视为多种子语言的联合体

来源:https://www.ctolib.com/docs//sfile/effective-cpp/3.html下面记录我的理解:CPP = 【C】 + 【Object-Oriented CPP】 + 【Templete 】+【STL】【C】c是cpp最基础的根源,提供给cpp语言最基础的特性:模块,语句,预处理,内建类型,数组,指针等。cpp是对c的延续与扩充,强化了c的一部分特性,使其能完成一些高级的解决问题的办法。【Object-Oriented CPP】面向对象设计面向对象设计是C

2020-12-10 19:15:58 189 2

原创 设计模式---享元模式(C++实现)

享元模式(Flyweight Pattern)主要用于减少创建对象的数量,减少内存占用和提高性能。这种设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。享元模式尝试重用现有的类对象,如果未找到匹配的对象则创建新的对象。意图运用共享技术有效的支持大量细粒度的对象。解决问题在有大量对象时,有可能会造成栈溢出,我们把其中共同的部分抽象出来,

2020-11-17 20:54:38 1667

原创 信号量 SEM_UNDO标识

一 、 为什么使用信号量?为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问 代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行。而信号量就可以提供这样的一种访问机制,让一个临界区同一时间只有一个线程在访问它, 也就是说信号量是用来调协进程对共享资源的访问的。其中共享内存的使用就要用到

2020-11-17 20:54:07 1235

原创 数据结构与算法---二分查找

(该文章属于达梦数据库的基本操作,建议有一定的SQL基础来阅读会更有效果)经过三天的学习,差不多熟悉了达梦数据库的基本操作 ,下面我将逐一介绍:目录达梦数据库---DM8体系结构达梦数据库---安装及初始化数据库实例达梦数据库---工具介绍达梦数据库---图形化界面操作数据库达梦数据库---SQL命令操作数据库达梦数据库---ODBC安装配置达梦数据库---DM8体系结构达梦数据库---安装及初始化数据库实例达梦数据...

2020-11-17 20:52:04 149 2

原创 数据结构与算法---玩转双指针

玩转双指针算法解释使用两个指针协同完成任务的方式,通常用于遍历数组,也可以延伸到多个数组的多个指针。两个指针指向同一个数组,遍历方向相同且不相交,则这两个指针包含的区域称为**滑动窗口**,通常用于遍历区间搜索。两个指针指向同一数组,遍历方向相反,则可以进行搜索,通常用来搜索已序数组。理解双指针更多的是解决问题的一种办法,个人觉得不能算严格意义上的算法。只是在某些情况下,更适用。LeetCode案例=========== 167. Two Sum II - Input array is

2020-11-09 23:39:12 133

原创 达梦数据库学习记录

(该文章属于达梦数据库的基本操作,建议有一定的SQL基础来阅读会更有效果)经过三天的学习,差不多熟悉了达梦数据库的基本操作 ,下面我将逐一介绍:目录一、安装及初始化数据库实例二、DM8体系结构三、工具及手册使用四、图形化界面操作数据库五、DMSQL操作数据库六、DM8开发:ODBC安装配置一、安装及初始化数据库实例环境:NeoKyin 7达梦数据库:DM81、操作系统配置查看操作系统信息[root@localhost 桌面]# uname -a查询glibc的版本[root

2020-09-17 20:02:06 638

原创 程序猿的自我感想

或许在编程方面,我真的是个菜鸟,对于很多知还是很欠缺的。但是,总有很对想法,对一些看法在经历事情过后有了新的转变,不敢说这是不是向好的方向转变,但是每次觉得这种新鲜的感觉得真好(我草,居然这么骗自己),呵呵,作为刚毕业进入社会的我来说,还是稍微的感到了自己的单纯,总能不经意间的被套路,下面就简单分享我遇到的一些让我成长的事(说出自己的苦逼遭遇吧,当然不能说的太明显了,毕竟还想在这个圈子混下去):

2017-07-26 21:25:43 874

原创 VS2013多字节工程问题

使用VS2013编译旧版VC++程序时,提示Building an MFC project for a non-Unicode character set is deprecated,微软提供了解决方案。我是把VC6.0上面的程序拿到 VS2013上面运行了,结果出现了如下的错误:1、错误信息------ 已启动全部重新生成:  项目: Server, 配置: 

2017-05-02 13:22:37 1121

原创 STL之set、map基本使用实例

set和map都是关联式容器,二者都对内部元素默认排序:升序。set是key结构 , map是key-value结构;set可以去重 , map重载了[ ],查询速度快;set包含的基本方法:map的基本方法:使用这些函数的实例:void test_set(){ //set是 key结构的,是关联式容器,对插入的元素自动排序,默认是升序

2017-03-22 15:42:13 958

原创 STL之list基本使用实例

list其实就是双向链表,好好复习list的使用。Cplusplus描述的list方法:基本操作实例:void test_list(){ list pList; cout << "push_back() , pop_back() ,begin() , end()测试:" << endl; pList.push_back(1); //尾插 pList.

2017-03-22 14:35:47 984

原创 STL之vector基本使用实例

最近复习STL,对于vector的一些功能知道,但是就忘记了函数名是啥了,这就很尴尬,所以把经常使用的方法都用了,也方便以后回顾。vector基本方法-->看图:test_code:void test_vector(){ vector vec; vec.push_back(1); vec.push_back(3); vec.push_back(

2017-03-22 11:49:38 886

原创 设计模式---访问者模式(C++实现)

在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。       根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。意图主要将数据结构和数据操作分离。解决问题稳定的数据结构和易变的操作耦合

2017-03-21 15:38:23 809

原创 设计模式---模板模式(C++实现)

在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。意图       定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。解决问题       一些方

2017-03-21 14:12:03 746

原创 设计模式---策略模式(C++实现)

在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。       在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。意图定义一系列的算法,把它们一个个封装起来,并且使他们可以互相替换解决问题在有多

2017-03-21 13:55:10 778

原创 设计模式---空对象模式(C++实现)

在空对象模式中(Null Object Pattern )中 , 一个空对象取代NULL对象实例的检查。Null对象不是检查空值,而是反应一个不做任何动作的关系。这样的Null对象 也可以在数据不可用的时候提供默认的行为。        在空对象模式中,我们创建一个指定各种要执行的操作的抽象类和扩展该类的实体类,还创建一个未对该类做任何实现的空对象类,该空对象类将无缝地使用在需要检查空值的地方

2017-03-21 10:42:11 1979

原创 SQL Server 入门学习总结---进阶篇

本篇博客主要讲述数据库经常使用的一些约束、索引、删除语句以及视图,下面吧这些具体知识点一点一点讲述出来。主题:约束:NOT NULL 、 unique、primary key  、foreign key 、check 、default;索引:创建与删除删除:drop 、 truncate向已有的表添加、修改或者删除列:alter table视图:创建、更新、查看

2017-03-20 14:48:00 2753

转载 SQL----- truncate、delete、drop的区别与联系

相同点:1. truncate 和不带where子句的delete、以及drop都会删除表中的数据;2. drop 、truncate 都是DDL语句(数据定义语言),执行后会自动提交。区别:1. truncate 和delete只删除数据不删除表的结构;    drop会删除表被依赖的约束、触发器、索引,依赖于该表的存储过程/函数保留但变为invalid状

2017-03-20 14:29:15 1071

原创 设计模式---状态模式(C++实现)

在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。在状态模式中,通过创建不同的状态对象和一个随着状态变化的context对象。意图        允许对象在内部状态发生改变时,改变它的行为,对象看起来好像修改了它的类。解决问题        对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的

2017-03-20 10:23:28 830

原创 设计模式---观察者模式(C++实现)

观察者模式(Observer Pattern )    当对象之间存在一对多的关系时,则使用观察者模式。 观察者模式属于行为型模式。意图        定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知一样并被自动更新。解决问题        一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协

2017-03-20 09:46:32 801

原创 设计模式---备忘录模式(C++实现)

备忘录模式(Memento Pattern)保存对象的某个状态,以便在适当的时候恢复。备忘录模式属于行为型模式。意图在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。解决问题        备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。如何解

2017-03-17 15:43:12 644

原创 设计模式---中介模式(C++实现)

中介模式(Mediator Pattern)用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。意图        用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显示的互相调用,从而使其耦合松散,而且可以 独立地改变它们之间的交互。解决问题对象与对象之间

2017-03-17 15:22:08 744

原创 设计模式---迭代器模式(C++实现)

迭代器模式(Iterator Pattern)用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。意图提供一种方法顺序访问一个聚合 对象中各个元素,而又无需暴露该对象的内部表示。解决问题不同的方式遍历整个对象如何解决把元素之间游走的责任交给迭代器,而不是聚合对象。优点1. 支持不同的 方式遍历聚合对象2.

2017-03-17 14:50:11 1932

原创 SQL Server 入门学习总结---升级篇

在前面已经把常见的数据库操作语句学习了一些,而本篇博客主要讲述对于数据库使用的基本指令,当然会比上一篇的内容更加丰富。主题:join语句的几种使用方式;Alias(别名)的使用方式;Union基本使用方式;select into  的使用;使用指令创建数据库和表;------------------------------------------

2017-03-17 14:12:09 1937

原创 设计模式---解释器模式(C++实现)

解释器模式(Interpreter Pattern)提供了评估语言的 或者表达式的方式,属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在SQL解析、符号处理引擎等。意图         给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。解决问题         对于一些固定文法构建一个结

2017-03-17 11:34:11 777

原创 设计模式---命令模式(C++实现)

命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适 的对象,并把该命令传给相应的对象,该对象执行命令。意图将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。解决问题        在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关

2017-03-17 09:35:36 929

原创 SQL Server 入门学习总结---基础篇

首先相信很多人在开始准备学习的时候,肯定对数据库的基本学习路线是蒙的,当然我也是这样过来的。我也是在后来把基础知识学完之后,才看到一张图,很棒的学习路线图。先把这个分享给大家:对于这张图,相信不用多解释了吧。下面进入今天的主题:主题:SQL Server基本使用、  SQL 基本语法简介、  select语句基本使用(包括where、and/or 、order

2017-03-16 18:00:42 46589 9

原创 设计模式---责任链模式(C++实现)

责任链模式(Chain of Responsibility Pattern)为请求创建一个接受者对象的链。这种模式给与请求的类型,对请求的发送者和接受者进行解耦。属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。意图避免请求发送者和接受者耦合在一起,让多个对象都有可能接

2017-03-16 15:48:31 3337

原创 设计模式---代理模式(C++实现)

在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种设计模式属于结构型模式。在代理模式中,我们创建具现有的对象,以便想外界提供功能接口。意图         为其他对象提供一种代理以控制对这个对象的访问。解决问题         在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象

2017-03-16 15:11:45 594

原创 设计模式---外观模式(C++实现)

外观模式(Facade Pattern)隐藏系统的复杂性 , 并向客户端提供了可以访问系统的接口,这个接口使得子系统更加容易使用。这种类型的设计模式属于结构型模式,它向现有系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和现有系统类方法的委托调用。意图为子系统中的一组接口提供一个一致的界面 , 外观模式定义了一个高层接口,这个接口

2017-03-16 14:08:36 712

原创 设计模式---装饰器模式(C++实现)

装饰器模式(Decorator Pattern)允许向一个现有对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。意图动态的给一个对象添加额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。解决问题一

2017-03-15 21:58:58 6561 4

原创 设计模式---组合模式(C++实现)

组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。意图将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。解决问题它在我们树型结构的问

2017-03-15 21:38:33 1875

原创 设计模式---桥接模式(C++实现)

桥接模式(Bridge Pattern)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它提供抽象化和实现化的桥接结构,来实现二者的解耦。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。意图把抽象部分与现实部分分离,使它们都可以独立的变化。(这个思想有点不好理解,多看看实例就好了

2017-03-15 21:02:15 1054

VS临时文件清理小工具.rar

vs执行过程中产生的一些临时文件,但有些不会自动清理,我们可以使用这个工具进行清理,不会影响项目上的问的东西,只是临时文件

2020-09-20

VC++之MFC类库中文手册

VC++之MFC类库中文手册,方便查阅mfc相关资料,但英语用的不熟的童鞋。我也是找了好久才找到的,希望能帮到大家

2020-09-20

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

TA关注的人

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