
c++编程
_Inory
喜欢编程,爱好看书,随时随地充电
展开
-
如何编译&使用boost库?
1. 编译1.1. 下载地址:http://www.boost.org/1.2. VS2005编译boost_1_55_01.2.1. 使用vs2005的命令行执行:...\boost_1_55_0\bootstrap.bat1.2.2. 编译动态库bjam install stage --toolset=msvc-8.0 --stagedir="C:\Boost\bo转载 2015-06-19 16:56:56 · 501 阅读 · 0 评论 -
装饰者模式(C++)
**概述:** 23种设计模式之一,英文叫Decorator Pattern,又叫装饰者模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。**装饰模式的特点:** (1) 装饰对象和真实对象有相同的接口。这样客户端对象就能以和真实对象相同的方式和装饰对象交互。 (2) 装饰对象包含一个真实对象的引用(refer原创 2016-04-21 11:39:03 · 498 阅读 · 0 评论 -
QT用md5加密字符串
引用头文件QCryptographicHash #include <QCryptographicHash> QString md5; QString pwd=ui->txtPassword->text(); QByteArray bb; bb = QCryptographicHash::hash ( pwd.toLatin1(), QCryptographicH原创 2016-12-08 05:03:09 · 1496 阅读 · 0 评论 -
QT在构造函数中关闭窗口
QTimer::singleShot(0, qApp, SLOT(quit()));原创 2016-12-15 22:14:31 · 1426 阅读 · 0 评论 -
在Linux上发布qt程序
用ldd寻找依赖,然后复制依赖库到release版本的可执行文件的目录下即可#!/bin/sh exe="Server" #发布的程序名称 des="/home/hifumi/QTProject/myLibrary/Server_install" #你的路径 deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 }原创 2016-12-16 14:31:30 · 757 阅读 · 0 评论 -
shell在终端中打开另一个终端执行命令
gnome-terminal -x bash -c “sh ./run.sh;exec bash;”原创 2016-12-19 19:00:53 · 11786 阅读 · 0 评论 -
[C++]Lambda表达式简介
Lambda表达式简介简介 很多语言都提供了 lambda 表达式,如 Python,Java 8。lambda 表达式可以方便地构造匿名函数,如果你的代码里面存在大量的小函数,而这些函数一般只被调用一次,那么不妨将他们重构成 lambda 表达式。原型[capture](parameters)->return-type {body}mutable 修饰符说明 lambda 表达式体内的代码原创 2017-03-18 23:09:59 · 389 阅读 · 0 评论 -
[C++]Vector简介
Vector1.基本操作头文件:#include<vector> 原型:vector<T> 新建int类型容器:vector<int> vint; 在尾部插入元素:vint.push_back(4); 访问元素:vint[0]; 删除元素:vint.erase(vint.begin());//删除第一个元素 获取元素个数:vint.size(); 清空容器:vint.clear();2原创 2017-03-18 23:34:39 · 512 阅读 · 0 评论 -
[C++]Pair简介
Pair c++中的结构模板,定义在头文件中,提供一个包含2个数据成员的结构体模板。继承与_Pair_base结构体模板。通过first,second访问2个成员,有 operator= 和 swap 方法。1.基本操作头文件:#include<utility>//一般声明了iostream可以不特别声明utility 原型:pair<T1,T2> 新建pair:pair<string,int原创 2017-03-18 23:48:30 · 489 阅读 · 0 评论 -
[C++]tuple简介
Pair 说到tuple,肯定会第一时间想到python语言,但tuple也不仅仅只在python中有,在C#,C++等语言中都有这样的数据结构。 在C++中的tuple和python语言中是类似的,是一个强大的允许存放多个不同类型数据的容器,是对pair的泛化。 要在C++中使用tuple,首先需要引用头文件tuple及名空间std。1.基本操作头文件:#include<tuple> 原型原创 2017-03-19 12:40:20 · 546 阅读 · 0 评论 -
[C++]Algorithm中的函数简介
Algorithmalgorithm意为”算法”,是C++的标准模版库(STL)中最重要的头文件之一,提供了大量基于迭代器的非成员模版函数。内容本文简单介绍find,swap,sort,for_each这几个函数的功能及使用方法。函数原型及用例给定一个vector容器:vector<int> nums={8,7,5,4,2,9,6,1,3,0};find:find(nums.begin(),nums原创 2017-03-19 22:12:55 · 2846 阅读 · 0 评论 -
[C++]L1-005. 考试座位号
每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。输入格式:输入第一行给出一个正整数N(<=1000),随后N行,每行给出一个考生的信息:“准原创 2017-03-19 22:39:17 · 625 阅读 · 0 评论 -
观察者模式(C++)
简介观察者模式(Observer)完美的将观察者和被观察的对象分离开。举个例子,用户界面可以作为一个观察者,业务数据是被观察者,用户界面观察业务数据的变化,发现数据变化后,就显示在界面上。面向对象设计的一个原则是:系统中的每个类将重点放在某一个功能上,而不是其他方面。一个对象只做一件事情,并且将他做好。观察者模式在模块之间划定了清晰的界限,提高了应用程序的可维护性和重用性。 观察者设计模式定义了对原创 2016-05-05 11:20:14 · 498 阅读 · 0 评论 -
建造者模式(C++)
定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。类型:创建类模式类图:四个要素产品类:一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量。在本类图中,产品类是一个具体的类,而非抽象类。实际编程中,产品类可以是由一个抽象类与它的不同实现组成,也可以是由多个抽象类与他们的实现组成。抽象建造者:引入抽象建造者的目的,是原创 2016-04-07 11:09:37 · 724 阅读 · 0 评论 -
提示不能从“const char *”转换为“LPCWSTR” 的解决办法
我最近在学习c++动态库 当loadlibrary时候总是提示参数类型不能从“const char *”转换为“LPCWSTR” 解决方法:在const char*变量前加上L,即可解决 int main(){ HINSTANCE h; h = LoadLibrary(L"test动态库.dll");原创 2015-07-30 14:35:18 · 976 阅读 · 1 评论 -
C++多线程编程简单实例
C++本身并没有提供任何多线程机制,但是在windows下,我们可以调用SDK win32 api来编写多线程的程序,下面就此简单的讲一下: 创建线程的函数HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD SIZE_T dwStackSize,转载 2015-07-21 15:47:50 · 343 阅读 · 0 评论 -
浅谈C/C++内存泄漏及其检测工具
对于一个C/C++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如 Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java中已经比转载 2015-07-21 16:00:28 · 336 阅读 · 0 评论 -
DLL编程的导入导出,__declspec(dllimport),__declspec(dllexport)
在Windows DLL编程时,可使用__declspec(dllimport)关键字导入函数或者变量。 __declspec(dllimport),函数的导入 当你需要使用DLL中的函数时,往往不需要显示地导入函数,编译器可自动完成。但如果你显示地导入函数,编译器会产生质量更好的代码。由于编译器确切地知道了一个函数是否在一个DLL中,它就可以产生更好的代码,不再需要间接的转载 2015-07-21 16:38:10 · 459 阅读 · 0 评论 -
除非必须,否则不用递增递减运算符的后置版本
前置版本的递增运算符避免了不必要的工作,它把值加1后直接返回改变了的运算对象。与之相比,后置版本需要将原始值储存下来以便于返回这个未修改的内容。如果我们不需要修改前的值,那么后置版本的操作就是一种浪费。 建议养成使用前置版本的习惯,这样不仅不需要担心性能问题,而且更重要的是写出的代码更符合编程的初衷。转载 2015-07-22 11:11:11 · 698 阅读 · 0 评论 -
c++访问数据库方法
C++连接数据库的方法: 前段时间写程序,需要用到C++连接访问数据库,询问了好多同学都是模棱两可。所以只好自己去琢磨:learn by doing.在这儿写出来,一是为了自己总结,二是大家需要此类时可直接搬过去用,不用再费劲绕弯路了。 数据库连接有多种方式,通过学习得知有几种方法,但还没时间亲自实验: 1.使用纯C++实现,通过db-libara原创 2015-08-31 01:35:35 · 1350 阅读 · 0 评论 -
推荐!国外程序员整理的 C++ 资源大全
关于 C++ 框架、库和资源的一些汇总列表,由 fffaraz 发起和维护。内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。 标准库C++标准库,包括了STL容器,算法和函数等。C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。Sta转载 2015-08-18 15:45:01 · 601 阅读 · 0 评论 -
Visual C++数据库编程(ODBC)
ODBC基本概念 ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可原创 2015-09-14 20:11:49 · 838 阅读 · 0 评论 -
12月15日,progress_dispaly
Progress_display用来显式表示进度.不至于让用户在等待中失去耐心.#include<boost\progress.hpp>#include<iostream>#include<Windows.h>using namespace std;int main(){ boost::progress_display pd(1000); int i = 0; wh原创 2015-12-15 18:09:31 · 324 阅读 · 0 评论 -
12月14日,Progress库
Progress库继承timer库,在构造时开始计时,析构时结束计时并输出时间.#include<boost/progress.hpp>#include<Windows.h>int main(){ boost::progress_timer t; //构造计时器t. Sleep(1000); t.~progress_timer(); //析构输出时间.原创 2015-12-14 21:56:31 · 298 阅读 · 0 评论 -
12月9日,timer库
timer库,简单的计时器,可以计算运行时间 代码:#include<iostream>#include<boost/timer.hpp>using namespace std;int main(){ boost::timer t; cout<<t.elapsed_max()<<endl; cout<<t.elapsed_min()<<endl; cout<原创 2015-12-09 22:23:50 · 313 阅读 · 0 评论 -
解决QT5.8 for android 无法连接64位Mysql的问题
Qt5.8如果使用的是mingw编译器,Qt只有32位的。连接64位的MySQL,即使把mysql安装目录下的libmysql.dll放到qt安装目录bin路径下,也是无法连接数据库。网上给出的做法是下载Qt对应版本的源码,重新编译。这种方法复杂繁琐,且容易编译失败。先发现一种简便方法,就是mysql的官网给出了连接32位的驱动。 https://dev.mysql.com/downloads/c原创 2017-05-30 15:16:14 · 2346 阅读 · 3 评论