c++
文章平均质量分 88
happyprince
这个作者很懒,什么都没留下…
展开
-
map注意的两个问题
代码1void main() { map< int, int* > mapInt; for ( int i = 0; i < 5; i++ ) { mapInt[ i ] = new int( i ); } // 再插入键值为2的元...原创 2014-12-11 14:21:02 · 128 阅读 · 0 评论 -
MYSQL在C—API 中可用的函数
mysql_affected_rows()返回被最新的UPDATE, DELETE或INSERT查询影响的行数。mysql_close()关闭一个服务器连接。mysql_connect()连接一个MySQL服务器。该函数不推荐;使用mysql_real_connect()代替。mysql_change_user()改变在一个打开的连接上的用户和数据库。...原创 2014-08-24 23:03:35 · 110 阅读 · 0 评论 -
C++读写文件
掌握文本文件读写的方法了解二进制文件的读写方法 C++文件流:fstream // 文件流ifstream // 输入文件流ofstream // 输出文件流 //创建一个文本文件并写入信息//同向屏幕上输出信息一样将信息输出至文件#include<iomanip.h>#include<fstream.h>...原创 2014-08-21 17:41:52 · 161 阅读 · 0 评论 -
c++中调用其他应用程序的方法(winexec shellexecute createprocess)
三个WINDOWS SDK函数: WinExec,ShellExecute ,CreateProcess,可以实现调用其他程序的要求。WinExec这个函数最简单,只有两个参数,原型如下: UINT WinExec( LPCSTR lpCmdLine, // 命令路径 UINT uCmdShow // 显示方式 ;使用方法如下:...原创 2014-08-21 13:58:25 · 713 阅读 · 0 评论 -
[转]浅谈C/C++内存泄露及其检测工具
对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如 Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java中已经比较...原创 2014-08-20 09:54:38 · 86 阅读 · 0 评论 -
C++临时对象
C++中有这样一种对象:它在代码中看不到,但是确实存在。它就是临时对象---由编译器定义的一个没有命名的非堆对象(non-heap object)。为什么研究临时对象?主要是为了提高程序的性能以及效率,因为临时对象的构造与析构对系统性能而言绝不是微小的影响,所以我们应该去了解它们,知道它们如何造成,从而尽可能去避免它们。 临时对象通常产生于以下4种情况: 类型装换按值传递...原创 2014-08-19 14:38:27 · 94 阅读 · 0 评论 -
VS使用QT设计师设计的UI
1. 新建UI,保存为ab.ui,把文件放在项目的UI路径中。 2. 在VS加入ab.ui文件,例如: 3. 编译一下,会生成一个ui_ab.h的文件。运行的命令行为:"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"右键*.ui文件,选属性可以看到: ...2014-08-18 16:08:53 · 745 阅读 · 0 评论 -
C++&&Mysql配置及例子
一,Mysql驱动动(64位):mysql-connector-c-6.1.2-winx64.msi(这个地方http://download.csdn.net/detail/ld326/7764079可以下载)二,mysql安装目录下的include文件夹和lib文件:三,选择属性(下图显示的东西),分别在”c/c++”->常规,”连接器”->常规的“附加包含目录”直...2014-08-15 23:10:52 · 97 阅读 · 0 评论 -
C++智能指针(补充QT的+shared_ptr陷阱)
代码后面有说明,这里不啰嗦了。#include "stdafx.h"#include <memory>#include <string>#include <iostream>int _tmain(int argc, _TCHAR* argv[]){ using namespace std; /*auto_ptr...2014-08-15 09:47:29 · 2414 阅读 · 0 评论 -
几种c/c++中字符串转整形的方法[转]
1.自己写一个函数(c/c++)#include <stdio.h>#include <assert.h>/* my string to integer function */int myfun(char *str){ int i = 0,n = 0,flag = 1; if(str[0] == '-') ...原创 2014-08-15 09:04:03 · 164 阅读 · 0 评论 -
编辑距离算法
字符串编辑距离: 是一种字符串之间相似度计算的方法。给定两个字符串S、T,将S转换成T所需要的删除,插入,替换操作的数量就叫做S到T的编辑路径。而最短的编辑路径就叫做字符串S和T的编辑距离。举个例子:S=“eeba” T="abac" 我们可以按照这样的步骤转变:(1) 将S中的第一个e变成a;(2) 删除S中的第二个e;(3)在S中最后添加一个c; 那么S到T的编辑路径就等于3。当然,这种...原创 2014-08-14 00:02:11 · 122 阅读 · 0 评论 -
c++ vector resize & reserve
首先必须弄清楚两个概念:1.capacity 指容器在分配新的存储空间之前能存储的元素总数。2. size 指当前容器所存储的元素个数在弄清这两个概念以后,很容易懂resize和reserve的区别 1).reserve表示容器预留空间,但并不是真正的创建对象,需要通过insert()或push_back()等创建对象。resize既分配了空间,...原创 2014-08-13 21:14:38 · 128 阅读 · 0 评论 -
Qt源码学习(从Win32到Qt)
本文以一个Win32的helloworld程序开篇,· 程序入口WinMain注册窗口类别建立窗口,在屏幕上显示进入事件循环,不断从事件队列中取出消息来处理而后尝试解释前述各部分分别隐藏在Qt何处:main()程序入口Qt提供一个WinMain来调用mainQWidget::show()...原创 2015-03-15 23:03:04 · 442 阅读 · 0 评论 -
《Windows核心编程》---图形用户界面之窗口<转>
图形用户界面之---窗口:主函数一般是:/************************************************************************** WinMain* 功能:程序入口点,调用InitApplication,InitInstance,进行消息循环* 参数:hinstance---应用程序本次运行实例* ...原创 2015-03-16 09:20:33 · 139 阅读 · 0 评论 -
c++多线程编程
http://blog.csdn.net/hitwengqi/article/details/8015646一直对多线程编程这一块很陌生,决定花一点时间整理一下。os:ubuntu 10.04 c++1.最基础,进程同时创建5个线程,各自调用同一个函数 [html] view plaincopy#include <iostream&...原创 2015-03-25 23:50:33 · 102 阅读 · 0 评论 -
关于C++ const 的全面总结<转>
C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const作用 如下表所示:No.作用说明参考代码...原创 2014-11-14 12:56:28 · 87 阅读 · 0 评论 -
OpenGL超级宝典(第五版)环境配置【转】
OpenGL超级宝典(第五版)环境配置Vs2008+winXP 后续会整理Ubuntu 12.04LTS下的配置作者:sunny_unix1.各种库的配置(1)glew下载:https://sourceforge.net/projects/glew/files/glew/1.7.0/glew-1.7.0.zip/download将include文件夹下的.h文件拷贝到C...原创 2014-10-27 13:59:21 · 114 阅读 · 0 评论 -
C++DLL编程详解
DLL(Dynamic Link Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该DLL不必被包含在最终EXE文件中,EX...原创 2014-10-08 19:44:13 · 477 阅读 · 0 评论 -
C++&&QT调试时出现的一些错误
错误原因解决1 error C2533: “GDQEditPolygonFrm::{ctor}”: 构造函数不能有返回类型头文件里定义完类后,在大括号外没分号加分号2connect方法,没有与slot方法绑定1.对于继承的类,容易忽略Q_OBJECT的增加 2. 信号与...原创 2014-10-08 15:14:03 · 329 阅读 · 0 评论 -
c++中__declspec
第一篇:c++ 中__declspec 的用法语法说明:__declspec ( extended-decl-modifier-seq )扩展修饰符:1:align(#) 用__declspec(align(#))精确控制用户自定数据的对齐方式 ,#是对齐值。e.g__declspec(align(32)) struct Str1{int a, b, c, d, e;};【转】它...原创 2014-09-15 09:14:58 · 864 阅读 · 0 评论 -
【转】C++ function、bind以及lamda表达式
本文是C++0x系列的第四篇,主要是内容是C++0x中新增的lambda表达式, function对象和bind机制。之所以把这三块放在一起讲,是因为这三块之间有着非常密切的关系,通过对比学习,加深对这部分内容的理解。在开始之间,首先要讲一个概念,closure(闭包),这个概念是理解lambda的基础。下面我们来看看wikipedia上对于计算机领域的closure的定义:A closu...原创 2014-09-11 09:42:16 · 97 阅读 · 0 评论 -
STL函数对象及函数对象适配器【转】
一 函数对象Functor STL中提供了一元和二元函数的两种Functor,通过unary_function和binary_function提供了这两种不同参数数量的Functor的基本结构,在这两个类型中,分别内嵌定义一元和二元函数操作在模版推演的时候需要用到的typedef. //一元函数的定义为template<class _A, class _R>struc...原创 2014-09-10 09:24:56 · 131 阅读 · 0 评论 -
typedef和typename关键字[转]
1、类型说明typedef类型说明的格式为:typedef 类型 定义名;类型说明只定义了一个数据类型的新名字而不是定义一种新的数据类型。定义名表示这个类型的新名字。例如: 用下面语句定义整型数的新名字:typedef int SIGNED_INT;使用说明后, SIGNED_INT就成为int的同义词了, 此时可以用SIGNED_INT 定义整型变量。例如: S...原创 2014-09-10 09:21:36 · 106 阅读 · 0 评论 -
C/C++中extern关键字详解[转]
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名...原创 2014-09-09 11:38:23 · 84 阅读 · 0 评论 -
vs2008【断点无效】解决方法
有时候,我们在用vs2008调试的时候,会出现断点无效。如下图: 第一反应,要看想一下是不是在debug下。如果在Release下,请参考我另篇文章 【怎么在Release下调试代码】 如果是在debug下:1.检查工程配置是否设置正确。 C++>General->Debug Information Format->Program Databa...原创 2015-04-13 10:05:55 · 220 阅读 · 0 评论 -
C++对象使用错误之复制构造函数与赋值
先来一段会出错的代码:#pragma once#include <iostream>class StringBad{public: StringBad(const char *s); StringBad(); ~StringBad(); //friend friend std::ostream &...2015-03-31 14:21:53 · 226 阅读 · 0 评论 -
algorithm方法列表与容器方法(附件)
Non-modifying sequence operations:for_eachApply function to range (template function) findFind value in range (function template) find_ifFind element i...原创 2014-08-13 20:28:22 · 141 阅读 · 0 评论 -
Array与Vector容器赋值效率比较
对比代码:#include <iostream>#include <vector>#include <array>#include <ctime>const int count = 6000;using std::vector;using std::array;int _tmain(int argc, _T...原创 2014-08-13 19:05:21 · 594 阅读 · 0 评论 -
C & C++的编译
C/C++编译过程C/C++编译过程主要分为4个过程1) 编译预处理2) 编译、优化阶段3) 汇编过程4) 链接程序一、编译预处理(1)宏定义指令,如#define Name TokenString,#undef等。 对于前一个伪指令,预编译所要做的是将程序中的所有Name用TokenString替换,但作为字符串常量的 Name则不被替换。对于后...原创 2014-08-12 09:21:23 · 95 阅读 · 0 评论 -
c++中的typename与class<转>
在泛型编程的形参表中,关键字typename和class具有相同的含义,可以相互使用,两个关键字都可以在同一模板形参表中使用: 1. typename用在模板定义里,标明其后的模板参数是类型参数。 [html] view plaincopytemplate<typename T,class U> calc (const T&, co...原创 2015-01-07 08:51:08 · 184 阅读 · 0 评论 -
traits:Traits技术初探
概述:traits是一种特性萃取技术,它在Generic Programming中被广泛运用,常常被用于使不同的类型可以用于相同的操作,或者针对不同类型提供不同的实现.traits在实现过程中往往需要用到以下三种C++的基本特性:enumtypedeftemplate (partial) specialization其中:enum用于将在不同类型间变化的标示统一成一个,它在C++中常常被用于在...原创 2015-01-06 12:49:54 · 189 阅读 · 0 评论 -
POD型别
POD全称Plain Old Data。通俗的讲,一个类或结构体通过二进制拷贝后还能保持其数据不变,那么它就是一个POD类型。平凡的定义:1. 有平凡的构造函数;2. 有平凡的拷贝构造函数;3. 有平凡的移动构造函数;4. 有平凡的拷贝赋值运算符;5. 有平凡的移动赋值运算符;6. 有平凡的析构函数;7. 不能包含虚函数;8. 不能包含虚基类。#inclu...原创 2015-01-06 12:37:30 · 281 阅读 · 0 评论 -
c++核心基础知识(内存管理)
内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权,还放弃了...原创 2015-01-04 22:22:53 · 163 阅读 · 0 评论 -
RAII惯用法:C++资源管理的利器
RAII是指C++语言中的一个惯用法(idiom),它是“Resource Acquisition Is Initialization”的首字母缩写。中文可将其翻译为“资源获取就是初始化”。虽然从某种程度上说这个名称并没有体现出该惯性法的本质精神,但是作为标准C++资源管理的关键技术,RAII早已在C++社群中深入人心。我记得第一次学到RAII惯用法是在Bjarne Stroustrup的...原创 2015-01-04 22:15:02 · 81 阅读 · 0 评论 -
内存分配器<转>
题记:内存管理一直是C/C++程序的红灯区。关于内存管理的话题,大致有两类侧重点,一类是内存的正确使用,例如C++中new和delete应该成对出现,用RAII技巧管理内存资源,auto_ptr等方面,很多C/C++书籍中都使用技巧的介绍。另一类是内存管理的实现,如linux内核的slab分配器,STL中的allocator实现,以及一些特定于某种对象的内存管理等。最近阅读了一些内存管理实现方...原创 2015-01-04 22:07:26 · 227 阅读 · 0 评论 -
operator new在C++中的各种写法
http://blog.sina.com.cn/s/blog_3c6889fe0100tqe8.html乍一看,在C++中动态分配内存很简单:new是分配,delete是释放,就这么简单。然而,这篇文章讲得要复杂一点,并且要考虑到自定义层次。这也许对简单的程序并不重要,但对你在代码中控制内存却是十分必要的,是否能写一个自定义的分配器,某种高级内存管理表或一个特定的垃圾回收机制。这篇文章...原创 2015-01-04 19:27:40 · 140 阅读 · 0 评论 -
可变参数va_list
1.要在函数中使用参数,首先要包含头文件<stdarg.h>。这个头文件声明了一个va_list类型,定义了四个宏,用来遍历可变参数列表。void va_start(va_list ap, last);type va_arg(va_list ap, type);void va_end(va_list ap);void va_copy(va_list dest, va_...原创 2014-12-26 17:45:20 · 138 阅读 · 0 评论 -
char* 做map 的KEY的思考
很明显的道理,不要简单从字面上的东西去理解,虽然char*可以指向字符串,但它毕竟只是一个指针,指针存放的内容只能是地址,请谨记。 而string是一个对象,当传递一个常量字符串(例如"abc")进来时,可以通过string的构造函数自动将该常量字符串转换为一个string对象。 如果把该常量字符串赋值给char*类型,就如同char* p = "abc"; 这个时候p只是一个指向"abc"的...原创 2014-12-26 08:19:12 · 137 阅读 · 0 评论 -
C 内存分配<转>
c 内存分配1、程序代码区:存放函数体的二进制代码。 2、全局区数据区:全局数据区划分为三个区域。 全局变量和静态变量的存储是放在一块的。初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。常量数据存放在另一个区域里。这些数据在程序结束后由系统释放。我们所说的BSS段(bss segment)通常是指用来存放程序中未初始化的全局变...原创 2012-08-22 23:16:38 · 97 阅读 · 0 评论 -
一些hash函数实现<转>
/*** Hash算法大全<br>* 推荐使用FNV1算法* @algorithm None* @author Goodzzp 2006-11-20* @lastEdit Goodzzp 2006-11-20 * @editDetail Create*/public class HashAlgorithms{/*** 加法hash*...原创 2012-08-14 11:53:46 · 93 阅读 · 0 评论