自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 QString、string和C字符串相互转换

std::string转换成QString string std_str (“abc”); QString q_str = QString::fromStdString(std_str);QString转换成std::string QString q_str(“abc”); string = q_str.toStdString();string转换成char* string std_s

2017-06-23 22:30:12 1337

原创 QT中快捷键使用

1 、Ctrl(按住)+ Tab快速切换已打开的文件2、快速添加方法实体(.cpp)声明, 将光标移动到h文件中的方法声明。按Alt(按住)+ Enter,再按回车键将在cpp中添加该函数的声明。3、修改变量名,并应用到所有使用该变量的地方。 将光标移动到需要更改的变量上,按Ctrl + Shift + R,当前变量名称外框为红色时,表示已经已激活全局修改功能,当修改此处变量名称时将一同修改代码

2017-06-21 22:01:36 503

原创 Qt之多线程简单学习

Qt中创建线程的方法: 只需要子类化QThread并重新实现它的run()函数就可以了。run()是个纯虚函数,是线程执行的入口,在run()里出现的代码将会在另外线程中被执行。run()函数是通过start()函数来实现调用的。 下面是我学习时的例子:工程文件: 界面效果: 运行效果: 下面贴出代码,大家参考一下: thread.h#ifndef THREAD_H#define THR

2017-06-20 21:14:15 385

原创 C++网络编程(3)

**重点内容**EPOLLONESHOT模式即使我们使用ET模式,一个socket上的某个事件还是可能被触发多次。这在并发程序中就会引起一个问题。比如一个线程(或进程,下同)在读取完某个socket上的数据后开始处理这些数据,而在数据的处理过程中该socket上又有新数据可读(EPOLLIN再次被触发),此时另外一个线程被唤醒来读取这些新的数据。于是就出现了两个线程同时操作一个socket的局面。这

2017-06-12 09:19:54 362

原创 C++之MYSQL的简介

一、mysql简介MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。 MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 - Mysql是开源的,所以你不需要支付额外的费用。 - Mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库。 - MySQL使

2017-06-10 22:14:52 573

原创 C++网路编程(2)

工作模式ET&LT

2017-06-06 22:48:20 215

原创 c++网络编程(1)

EPoll网路编程的优点

2017-05-28 20:03:41 468

原创 Linux下mysql简单编程

占位

2017-05-26 21:00:31 1575

原创 Ubuntu下Json库的封装以及json数据格式的使用

占位

2017-05-24 08:14:23 1424

原创 Ubuntu下sqlite3和mysql数据库的安装

占位

2017-05-18 11:40:45 810

原创 设计模式之适配器模式

占位

2017-05-12 20:11:59 160

原创 设计模式之观察者模式

占位

2017-05-07 21:21:01 164

原创 51单片机LED与数码管的学习

一、关于LED的各种操作//亮灯void LED_ON(void){ P1 = 0x00;}//灭灯void LED_OFF(void){ P1 = 0xff;}//左移和右移void LED_DLINK(unsigned char dir,unsigned char speed) //dir为移动方向,speed为移动的速度{ unsigned ch

2017-05-06 19:26:37 2643

原创 51单片机入门了解

一、单片机的基础知识(1)单片机的电平特性 数字电路中只有两种电平: 高和低(本课程中)定义单片机为TTL电平:高+5V、低0V。 RS232电平:计算机的串口,高-12V、低+12V。 所以单片机与计算机之间进行通讯时需要加电平转换芯片max232。(2)单片机的进制单片机的内部进制:二进制 单片机的编程常用进制:16进制C51编程应熟练掌握0-15的二进制和16进制进制转换:10进制-

2017-05-05 21:25:36 2562

原创 设计模式之代理模式

设计模式之代理模式

2017-05-03 21:31:28 176

原创 设计模式之建造者模式

设计模式之建造者模式

2017-05-02 19:58:44 208

原创 C++做题总结(1)

1、malloc与free和new与delete的区别(1)malloc和free是库函数,以字节为单位申请堆内存 (2)new和delete是关键字,以类型为单位申请堆内存 (3)malloc和free单纯的对内存进行申请与释放 (4)对于基本类型new关键字会对内存进行初始化 (5)对于类类型new和delete还负责构造函数和析构函数的调用2、编译器对构造函数的区别#include <

2017-05-01 20:59:24 314

原创 设计模式之装饰模式

设计模式之装饰模式

2017-04-28 21:16:44 257

原创 设计模式六大原则的理解

设计模式六大原则

2017-04-27 22:07:50 534

原创 设计模式之策略模式

策略模式解释: Strategy模式也叫策略模式是行为模式之一,它对一系列的算法加以封装,为所有算法定义一个抽象的算法接口,并通过继承该抽象算法接口对所有的算法加以封装和实现,具体的算法选择交由客户端决定(策略)。Strategy模式主要用来平滑地处理算法的切换 。模式中包含的角色及其职责 Strategy: 策略(算法)抽象。 ConcreteStrategy 各

2017-04-24 19:56:01 160

原创 设计模式之抽象工厂模式

抽象工厂模式解释:抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的。抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象。模式中包含的角色及其职责: 1、抽象工厂(Creator)角色 抽象工厂模式的核心,包含对多个产品结构的声明,任何工厂类都必须实现这个接口。2、具体工厂( Concrete Creator)角色 具体工厂类

2017-04-22 10:10:35 156

原创 设计模式之工厂模式

一、工厂模式解释 工厂方法模式同样属于类的创建型模式又被称为多态工厂模式 。工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。二、角色解释 抽象工厂(Creator)角色:工厂方

2017-04-21 11:04:00 169

原创 C++primer第十六章string与STL(1)

string 类

2017-04-19 22:43:36 257

原创 设计模式之简单工厂模式

简单工厂模式解释: 简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 工厂方法模式同样属于类的创建型模式又被称为多态工厂模式 。工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工

2017-04-18 18:19:51 164

原创 设计模式之单例模式

单例模式

2017-04-17 17:18:20 203

原创 设计模式概述

一、模式模式:在一定环境中解决某一问题的方案,包括三个基本元素–问题,解决方案和环境 设计模式:是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化。 设计模式是软件工程的基石脉络,如同大厦的结构一样。学习设计模式的意义在于提高职业素

2017-04-14 22:04:25 134

原创 c++primer第十五章友元、异常和其他

友元、异常和其他

2017-04-13 21:48:25 237

原创 c++primer第十一章使用类(二)

关于类型转换和自动转换函数

2017-04-12 22:01:35 189

原创 QT入门

一、QT介绍 QT是基于C++的跨平台的用户图形界面开发框架二、QT的安装1、Linux系统下Ubuntu下的有线安装与卸载ubuntu包管理工具:apt-get install qt-sdk CentOS包管理工具:yum install XXX 卸载: apt-get purge qt-sdk apt-get autoremove qt-sdk 安装: apt-get 下载下来的包

2017-04-10 22:33:50 183

原创 设计模式的六大原则

设计模式的六大原则 通常,对于开发完的代码都需要多种测试才能够投入使用,这包括: 首先要经过开发人员的单元测试、集成测试。 然后再到测试人员的白盒测试、黑盒测试。 最后还要由用户进行一定的测试。 经过漫长的测试,代码才能够投入使用。但是软件产品的维护和升级又是一个永恒的话题,在维护的过程中,你可能要不断地增加一些小功能;在升级的过程中,你要增加一些较大的功能。 因此,软件产品随时都有扩

2017-04-03 21:58:17 172

原创 c++STL六大组件

(一)、泛型程序设计 泛型编程(generic programming) 将程序写得尽可能通用 将算法从数据结构中抽象出来,成为通用的 C++的模板为泛型程序设计奠定了关键的基础(二)、什么是STL 1、STL(Standard Template Library),即标准模板库,是一个高效的C++程序库。2、包含了诸多在计算机科学领域里常用的基本数据结构和基本算法。为广大C++程序员们提供

2017-04-02 22:52:18 733

原创 c++primer第十四章c++代码重用(二)

一、保护继承 当派生类中派生出另一个类时,私有继承和保护继承之间的主要区别: 使用私有继承,第三代两类将不能使用基类的接口,是因为基类的公有接口在派生类中将变为私有方法。 使用保护继承时,基类的公有方法在第二代中将变成受保护的,因此第三代可以使用它。 在私有继承或者保护继承时,可以使用using来重新定义访问权限。二、多重继承 多重继承产生的问题: (1)从不同的基类继承同名的方法。

2017-03-31 21:39:25 315

原创 c++primer第十四章--c++代码重用(一)

一、组合 (1)组合是has-a的关系,即创建一个包含其他类对象的类。 (2)使用公有继承时,类可以获得接口,但使用组合时,类可以获得实现,但不能获得接口,一般通过实现来调用类的方法。 (3)将typedef放在类定义的私有部分意味可以在类中使用,explicit可以关闭隐式转换,但可以显示调用。用const可以限制数据的修改。关于组合的初始化和约束: 1、初始化被包含的对象 对于继承的对

2017-03-30 19:18:34 332 1

原创 实现删除字符串中出现次数最少的字符

实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。 字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。#include <iostream>#include <cstring>using namespace std;const int MAXSIZE = 20;int Delete

2017-03-29 19:58:31 1279

原创 排序之冒泡排序

冒泡排序是一种交换排序。 什么是交换排序呢? 交换排序:两两比较待排序的关键字,并交换不满足次序要求的那对数,直到整个表都满足次序要求为止。算法思想它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端,故名。 假设有一个大

2017-03-26 16:45:24 235

原创 利用STL容器stack实现一个简单的计算器

规则: #include <iostream>#include <cstring>#include <stack>using namespace std;stack<int>Num;stack<char>Op;const int max_size = 1024;/*将字符串转为int*/ int str2num(char **str){ int temp = 0; w

2017-03-23 15:00:04 380

原创 每日编程(3月22)

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数class Solution {public: bool Find(int target, vector<vector<int> > array) { int r = 0; int c

2017-03-22 19:50:42 169

原创 实现找子串的编程

#include <iostream>#include <cstring>using namespace std;const char * my_strstr(const char *s1,const char *s2){ const char *bp; const char *sp; if( s1 == NULL || s2 == NULL) {

2017-03-19 13:58:45 220

原创 c++primer第十二章读书笔记

本章主要讲解new运算符在各种情况下的使用注意事项。 c++使用new和delete运算符来动态控制内存。一、关于静态成员 (1)静态成员属于类,不属于对象,即在多个对象中只有一个静态成员对象副本。 (2)静态数据成员在类中声明,在包含类方法的文件中初始化。但如果静态成员是const整型类型或者枚举类型,则可以在类声明中初始化。 (3)静态成员函数由于没有this指针,因此只能访问静态成员。

2017-03-15 20:31:46 313

原创 c++之虚函数与多态

一、多态 多态性是指同样的消息被不同类型的对象接收时能导致完全不同的行为。 也可理解为同一个接口,使用不同的实例而执行不同的操作。 多态的实现:函数重载、运算符重载、模板、虚函数静态绑定:(函数重载、运算符重载 、模板) 绑定过程出现在编译阶段,在编译阶段就已确定要调用的函数。 动态绑定:(虚函数) 绑定过程工作在程序运行时执行,在程序运行时才确定要调用的函数。二、虚函数 虚函数的概念

2017-03-11 15:58:20 254

空空如也

空空如也

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

TA关注的人

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