C++
boylinux
这个作者很懒,什么都没留下…
展开
-
分析多线程并发写HashMap线程被hang住的原因
public class TestLock { private final HashMap map = new HashMap(); public TestLock() { final Thread t1 = new Thread() { @Override public void run() { for(int i=0; i转载 2015-09-17 09:40:56 · 1378 阅读 · 0 评论 -
#pragma pack()
VC对结构的存储的特殊处理确实提高CPU存储变量的速度,但是有时候也带来了一些麻烦,我们也屏蔽掉变量默认的对齐方式,自己可以设定变量的对齐方式。 VC中提供了#pragma pack(n)来设定变量以n字节对齐方式。n字节对齐就是说变量存放的起始地址的偏移量有两种情况:第一、如果n大于等于该变量所占用的字节数,那么偏移量必须满足默认的对齐方式,第二、如果n小于该变量的类型所占用的字节转载 2012-08-14 11:28:29 · 497 阅读 · 0 评论 -
关于a& 0xff的运算
byte是一个有符号数可以表示-128~+127,但是作为一个无符号数使用的时候可以表示0~255,而我们通常都是将byte作为无符号数用所以要&oxff 例如: Java代码 byte type=-123; type & 0xff//结果为133转载 2012-07-30 11:03:27 · 2066 阅读 · 0 评论 -
深入探讨 C++ 引用
引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多人使用它仅仅是想当然,在某些微妙的场合,很容易出错,究其原由,大多因为没有搞清本源。故在本篇中我将对引用进行详细讨论,希望对大家更好地理解和使用引用起到抛砖引玉的作用。 引用简介 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。转载 2012-08-14 11:40:53 · 514 阅读 · 0 评论 -
关于DLL的函数
关于DLL的函数: 用于声明导入导出函数 __declspec(dllexport) 声明一个导出函数,一般用于dll中 __declspec(dllimport) 声明一个导入函数,一般用于使用某个dll的exe中 更详细的可以看msdn 动态链接库中定义有两种函数:导出函数(export function)和内部函数(internal转载 2012-08-14 11:06:35 · 669 阅读 · 0 评论 -
LPSTR
一、 MSDN解释1. LPSTR在MSDN英文解释 Pointer to a null-terminated string of 32-bit Windows (ANSI) characters. 更正:Pointer to a null-terminal string of 8-bit Windows(ANSI) characters.2. LPSTR在MSDN中文解释转载 2012-07-26 16:50:09 · 1065 阅读 · 0 评论 -
Python操作Mysql实例代码教程
注意修改数据库的操作要 执行conn.commit(),否则无法将数据提交给数据库实例1、取得MYSQL的版本在windows环境下安装mysql模块用于python开发,请见我的另一篇文章:MySQL-python Windows下EXE安装文件下载# -*- coding: UTF-8 -*-#安装MYSQL DB for pythonim转载 2012-07-27 11:34:23 · 2663 阅读 · 0 评论 -
C++ 类访问控制(public/protected/private)
C++中 public,protected, private 访问标号小结第一:private, public, protected 访问标号的访问范围。private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不能被转载 2012-07-26 14:14:54 · 518 阅读 · 0 评论 -
编码感想
继承接口的类对于基类的纯虚函数都需要继承,无论是虚函数还是普通函数;原创 2012-07-26 11:29:38 · 440 阅读 · 0 评论 -
C/C++中的static和extern关键字
static是C++中常用的修饰符,它被用来控制变量的存贮方式和可见性。extern, "C"是使C++能够调用C写作的库文件的一个手段,如果要对编译器提示使用C的方式来处理函数的话,那么就要使用extern "C"来说明。一.C语言中的static关键字在C语言中,static可以用来修饰局部变量,全局变量以及函数。在不同的情况下static的作用不尽相同。(1)修饰局部转载 2012-07-26 14:09:34 · 551 阅读 · 0 评论 -
vector reserve函数
vector v; v.reserve(5); 因为vector中的reserve函数只是预留出所需要的内存空间,它影响的是v.capacity();但此时容器中并没有添加任何元素,即v.size()仍然是0。原创 2012-07-26 14:42:46 · 1141 阅读 · 0 评论 -
VS2008 Debug与Release的本质区别
如何设置:工具栏“生成”→“配置管理器”→“活动解决方案配置” 对于VS2008的初次使用者来说,常会遇到的编译问题时,Debug版本运行正常,但在Release版本则不稳定或无法运行。以下是对Debug版本与Release版本本质区别的分析:Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种转载 2012-07-26 11:41:39 · 966 阅读 · 0 评论 -
c++ 位运算
什么是位(bit)? 很简单,位(bit)就是单个的0或1,位是我们在计算机上所作一切的基础。计算机上的所有数据都是用位来存储的。一个字节(BYTE)由八个位组成,一个字(WORD)是二个字节或十六位,一个双字(DWORD)是二个字(WORDS)或三十二位。如下所示: 0 1 0 0 0 1 1 1 1 0 0 0 0 1转载 2012-08-08 17:22:07 · 529 阅读 · 0 评论 -
C++中this指针
this指针只能在一个类的成员函数中调用,它表示当前对象的地址。下面是一个例子:void Date::setMonth(int mn ){month= mn;// 这三句是等价的this->month= mn;(*this).month= mn;} 1. this只能在成员函数中使用。2. 全局函数,静态函数都不能使用this。3. 实际上,成员函数默认第一转载 2012-07-25 09:41:43 · 629 阅读 · 0 评论 -
c++ 头文件的作用
头文件每个C++/C程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。C++/C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀,C++程序的定义文件通常以“.cpp”为后缀(也有一些系统以“.cc”或“.cxx”为后缀)。1.转载 2012-07-25 14:16:55 · 1741 阅读 · 0 评论 -
C++类的继承与多重继承的访问控制
//程序作者:管宁 //站点:www.cndev-lab.com //所有稿件均有版权,如要转载,请务必著名出处和作者 #include using namespace std; class Base { public://公有的 int a1; virtual void test() = 0; protected://受保护的 int a2; private://私转载 2012-07-25 11:22:08 · 549 阅读 · 0 评论 -
C++ hash map
详细解说STL hash_map系列 来源于http://www.stlchina.org/0 为什么需要hash_map 用过map吧?map提供一个很常用的功能,那就是提供key-value的存储和查找功能。例如,我要记录一个人名和相应的存储,而且随时增加,要快速查找和修改:岳不群-华山派掌门人,人称君子剑张三丰-武当掌门人,太极拳创始人东方不败-第一高手,葵花宝典..转载 2012-07-25 15:05:08 · 1522 阅读 · 0 评论 -
c和c++分别实现动态分配二、三维数组
本文主要目的是用c和c++分别实现动态分配二、三维数组。一般而言,在C中用malloc和free实现,而在C++中用new和delete。 new和delete是c++操作符,malloc和free是c语言函数,它们都可以用来为对象动态分配空间,最大的区别在于:当用new和 delete为对象分配空间或delete对象时,将缺省的调用对象的构造函数及析购函数,而malloc和free是原来c库转载 2012-07-25 11:13:59 · 6669 阅读 · 0 评论 -
__cdecl
__cdecl 是C Declaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。被调用函数不会要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误。转载 2012-08-14 16:07:10 · 629 阅读 · 0 评论 -
c/c++内存管理深入详解(malloc和new)
这是我刚开始学编程里整理的一篇总结,主要是来源一本叫《高质量c/c++编程》的书,很多年过去了,重新复习一下。1、malloc()malloc()函数用来分配内存:将总共需要的字节数作为参数传递给该函数,返回值是指向最新分配的内存的指针,而如果内存没有分配好,则返回值是NULL。malloc()的使用技术:some_type *pointer;pointer转载 2012-07-31 15:28:44 · 1552 阅读 · 0 评论 -
static 使用
static函数没有this指针 static成员是类的组成部分但不是任何对象的组成部分,因此,static成员函数没有this指针。通过使用非static成员显示或隐式地引用this是一个编译时错误。 因为static成员不是任何对象的组成部分,所以static成员函数不能被声明为const。毕竟,将成员函数声明为const就是承诺不会修改该函数所属的对象。最原创 2012-08-15 10:07:03 · 738 阅读 · 0 评论 -
C++及C中的 string char指针及char数组
转自:http://www.cnblogs.com/ffhajbq/archive/2012/06/01/2529354.htmlC++及C中的 string char指针及char数组C++中string是标准库中一种容器,相当于保存元素类型为char的vector容器(自己理解),这个类提供了相当丰富的函数来完成对字符串操作,以及与C风格字符串之间转换,下面是对stri转载 2015-10-02 14:58:13 · 1599 阅读 · 0 评论 -
GNU编译优化级别-O -O1 -O2 -O3
最近做一个算法的GPU加速,发现实际上使用gcc的-O3(最高级编译优化)选项,可以获得很高的加速比,我的程序里达到了3倍的样子,有时效果甚至比GPU加速好。因此小小学习了下GNU的编译优化。附言一句,在进行调试的时候,最好关闭编译优化,不然程序自动优化,执行的步骤可能稍有变化。GNU编译器提供-O选项供程序优化使用:-O 提供基础级别的优化-O2 提供更加高级的代转载 2014-06-06 23:10:43 · 29820 阅读 · 4 评论 -
字符串字面值、C风格字符串、C++风格字符串
一、字符串字面值字符串字面值是一串常量字符,字符串字面值常量用双引号括起来的零个或多个字符表示,为兼容C语言,C++中所有的字符串字面值都由编译器自动在末尾添加一个空字符。字符串没有变量名字,自身表示自身"Hello World!" //simple string literal"" //empty string literal"\nCC\toptions\tfile.[cC]转载 2013-10-07 16:33:51 · 879 阅读 · 0 评论 -
linux中使用hashmap
#include "apue.h"#include #include #include #include #include "Sales_item.h"#include #include #ifdef __GNUC__#include #else#include #endifusing namespace std;namespace std{using name原创 2013-08-15 00:00:07 · 7432 阅读 · 1 评论 -
KMP字符串模式匹配详解
KMP字符串模式匹配详解来自CSDN A_B_C_ABC 网友KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。一. 简单匹配算法先来看一个简单匹配算法的函数:int Index_BF ( char S [ ], char T [ ], int po转载 2012-10-18 11:12:09 · 747 阅读 · 0 评论 -
推荐一个算法演示的地方
http://sjjg.js.zwu.edu.cn/SFXX/index.html里面涉及到基本的算法,分享给大家!原创 2012-10-17 10:31:41 · 928 阅读 · 0 评论 -
C++ 经典算法 面试绝杀
1.链表逆序2.链表合并3.一棵树是否某条路径结点之和等于给定值。并描述算法复杂度4.你熟悉的排序算法并描述算法复杂度。 快速排序 归并排序 堆排序 选择排序 插入排序 冒泡排序 折半插入排序以下代码都能成功通过。1.链表逆序原创 2012-09-12 22:51:07 · 12501 阅读 · 2 评论 -
《大话设计模式 C++版》
在我的资源有下载:大话设计模式 C++设计模式分为三种类型,共23类。 创建型模式:单件模式、抽象工厂模式、建造者模式、工厂方法、原型模式。 结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式原创 2012-09-06 15:55:12 · 8077 阅读 · 1 评论 -
Ubuntu下安装 C/C++ EClipse
1、首先在http://www.eclipse.org/downloads/ 下载Eclipse IDE for C/C++ Developers 根据系统版本选择方法:1).#uname -a如果有x86_64就是64位的,没有就是32位的2).# uname -mx86_643).# archx86_644).#file /bin/cat2、解压文原创 2012-09-04 11:15:28 · 1649 阅读 · 0 评论 -
写的异步通信CAsyncSocket程序m_hsoceket总是非法,请教!
写的异步通信CAsyncSocket程序m_hsoceket总是非法,请教!MySocket.h#ifndef __MYSOCKET_H__#define __MYSOCKET_H__class CDemoNetDlg;class CMySocket:public CAsyncSocket{public: CMySocket(); ~CMySocket()原创 2012-08-20 16:21:00 · 2386 阅读 · 0 评论 -
c++的牛人博客
http://blog.csdn.net/pongba 刘未鹏|C++的罗浮宫;http://www.cnblogs.com/artech/archive/2010/03/26/1697298.html http://blog.csdn.net/broadview2006 博文视点(北京)官方博客——技术凝聚实力 专业创新出版 http://blog.csdn.ne转载 2012-08-17 11:32:05 · 3064 阅读 · 0 评论 -
关于C++ 牛人推荐的好书(转载)
首先肯定要读一读Bjarne Stroustrup的The Design and Evolution of C++,了解一下这个语言的历史。接下来就可以看别的书了,但要不停地回头看这本书,看到你不断地学到的新技术是怎么样一点点地被接纳到这个语言中去的。第一本书因人而异,基础好一些的,可以看Stanley B. Lippman的C++ Primer,这本书非常地巨大,你打星号转载 2012-08-17 11:39:20 · 1197 阅读 · 0 评论 -
C运行时(CRT)库
1.3.2 C运行时(CRT)库运行时库是程序在运行时所需要的库文件,通常运行时库是以lib或dll形式提供的。Visual C++提供了两种版本的C运行时库。一个版本供单线程应用程序调用;而另一个版本供多线程应用程序调用。单线程运行时库与多线程运行时库有两个重大差别,分别如下。类似errno的全局变量,每个线程单独设置一个,这样从每个线程中可以获取正确的错误信息。多线程库中的数据结转载 2012-08-17 11:29:27 · 2959 阅读 · 0 评论 -
C++面试题 强势出击
1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?virtual修饰符会被隐形继承的。private 也被集成,只事派生类没有访问权限而已virtual可加可不加子类的空间里有父类的所有变量(static除外)同一个函数只存在一个实体(inline除外)子类覆盖它的函数不加virtual ,也能实现多态。在子类的空间转载 2012-08-16 16:05:48 · 972 阅读 · 0 评论 -
const指针的了解
const说明指针变量,组合的情况可能会显得很复杂。使用指针时要涉及两个目标,即指针本身和指针所指的对象。关于const指针变量,可归结为以下三种: 1.指向常量的指针变量; 2.常指针变量; 3.指向常量的常指针变量。 下面来分别谈谈这三种情况。一、指向常量的指针变量:声明格式: const type * var_name;或 type const * v转载 2012-08-16 16:25:33 · 782 阅读 · 0 评论 -
C|C++中的静态全局变量,静态局部变量,全局变量,局部变量的区别
static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。面向过程设计中的static全局变量、局部变量、静态全局变量、静态局部变量的区别C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文转载 2012-07-31 11:51:40 · 1352 阅读 · 0 评论 -
动态链接库
在公司看了很久的代码,但是对于对象的共享问题开始不是很明白,不知道为什么这个类能够使用另外一个类改变该类的成员变量,但是又没有去引用这个类。动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个原创 2012-07-31 11:12:06 · 470 阅读 · 0 评论 -
STL 简介,标准模板库
这篇文章是关于C++语言的一个新的扩展——标准模板库的(Standard Template Library),也叫STL。 当我第一次打算写一篇关于STL的文章的时候,我不得不承认我当时低估了这个话题的深度和广度。有很多内容要含盖,也有很多详细描述STL的书。因此我重 新考虑了一下我原来的想法。我为什么要写这篇文章,又为什么要投稿呢?这会有什麽用呢?有再来一篇关于STL的文章的必要吗?转载 2012-07-25 11:05:25 · 606 阅读 · 0 评论 -
【推荐】C++编码规范与指导
C++学习阶段浏览到 《C++编码规范与指导》,推荐给大家。。。http://baiy.cn/doc/cpp/原创 2012-07-25 11:54:56 · 547 阅读 · 0 评论