自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Dablelv的博客专栏

The blog world of Dablelv

  • 博客(20)
  • 资源 (9)
  • 论坛 (41)
  • 问答 (38)

原创 C++ 抛出异常与传递参数的区别

代码便已运行环境:VS2012+Debug+Win321.C++异常处理基本格式C++的异常处理机制有3部分组成:try(检查),throw(抛出),catch(捕获)。把需要检查的语句放在try模块中,检查语句发生错误,throw抛出异常,发出错误信息,由catch来捕获异常信息,并加以处理。一般throw抛出的异常要和catch所捕获的异常类型所匹配。异常处理的一般格式为:  try  {

2015-11-29 13:26:51 2696

原创 C++ 为什么要引入异常处理机制

1.异常处理的困难在程序设计中,错误时不可避免的。及时有效的发现错误,并作出适当的处理,无论是在软件的开发阶段还是在维护阶段都是至关重要的。错误修复技术是提高代码健壮性的最有效的方法之一。程序员往往忽视错误处理,并不是因为程序员认为自己的程序不会出错,而是因为错误处理不是一件轻松的事。编写错误处理代码,一方面会分散处理“主要”问题的精力,另一方面会引起代码膨胀,给阅读和维护带来困难。而且,...

2015-11-28 20:57:58 2613

原创 OpenMP并行加速笛卡尔乘积

1.字典字符集的笛卡尔乘积问题描述: 对于给定的由字典字符集组合而成的表达式,求该表达式构成的所有元素。例如表达式[0-9][a-z],其中0-9表示10个数字,a-z表示26个小写字母,构成的所有元素就是0a,0b,…,0z,1a,1b,…9z。字典字符集的笛卡尔乘积示意如下:问题分析: 对于任意的一个字典字符集构成的表达式[dic0][dic1]...[dicn],从左至右可以看作按照高位到

2015-11-28 14:35:56 1841

原创 C++ 多字节与宽字符串的相互转换

代码编译运行环境:VC++2012+Debug+Win321.问题描述char字符与wchar_t字符由于编码不同,所以在char*和wchar_t*之间使用强制类型转换达不到正确转换字符串的目的。考察如下程序。#include <iostream>using namespace std;int main(){ wchar_t* str=

2015-11-28 11:46:41 14507

原创 C 语言的数据类型宽度扩展

代码编译运行环境:VC++ 2012+Debug+Win321.问题描述在编程或者面试过程中,会遇到如下问题:char c=128;printf("%d",c); //输出-128为什么一个正整数128以整型int输出却变成了一个负数?2.问题分析在理解上面的问题时,我们需要先了解如下问题。(1)char型所能表示的数据范围是-128~127。当把128赋值给char型变量时,那么内存中实际存储的

2015-11-27 18:01:00 3861

原创 C++ endl 的本质是什么

1. endl的本质自从在C语言的教科书中利用Hello world程序作为学习的起点之后,很多程序设计语言的教科书都沿用了这个做法。我们写过的第一个C++程序可能就是这样的。#include <iostream>using namespace std;int main(){ cout<<"Hello world"<<

2015-11-22 21:31:16 10047 4

原创 C++IO流简介

1.输入输出(IO)与流的概念输入输出(IO)是指计算机同任何外部设备之间的数据传递。常见的输入输出设备有文件、键盘、打印机、屏幕等。数据可以按记录(或称数据块)的方式传递,也可以 流的方式传递。所谓记录,是指有着内部结构的数据块。记录内部除了有需要处理的实际数据之外,还可能包含附加信息,这些附加信息通常是对本记录数据的描述。流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数

2015-11-22 13:50:46 1967

原创 C++解引用操作符重载

“*”是一个一元操作符,它作用于指针,表示去除指针所指单元的内容。当某个类中对*操作符今次那个重载时,是将该类的对象当做一个指针看待,而用*操作符提取指针所指向的内容。考察如下程序。#include <iostream>using namespace std;template<typename T> class DataContainer{ T *p;public: DataCo

2015-11-22 00:54:24 4975

原创 C++赋值操作符重载

1.赋值操作符重载的原因赋值操作符是一个使用频率最高的操作之一,通常情况下它的意义十分明确,就是将两个同类型的变量的值从一端(右端)传到另一端(左端)。但在以下两种情况下,需要对赋值操作符进行重载。 一是赋值号两边的表达式类型不一样,且无法进行类型转换。 二是需要进行深拷贝。2. 赋值操作符重载的注意事项赋值操作符只能通过类的成员函数的形式重载。这就说明了,如果要将用户自定义类型的值传递给基本数

2015-11-21 18:32:57 1716

原创 C++输入输出操作符重载

1. 输入输出操作符简介C++中输入操作符是>>,输出操作符是<<,又叫做流对象的“插入操作符”和“提取操作符“。其实这两个操作符最初是在C语言中用于整数的移位运算,到了C++中才利用操作符重载的技术将它们应用于输入、输出操作。2.重载的原因应用于基本类型的输入、输出操作都已经在C++标准库中定义好,没有必要重新定义,也不允许重新定义。而对于用户自定义类来说,如果想利用输入、输出操作符进行本类对象的

2015-11-18 09:35:23 2536

原创 C++ 动态联编实现原理分析

代码编译运行环境:VS2012+Debug+Win32所谓动态联编,是指被调函数入口地址是在运行时、而不是在编译时决定的。C++语言利用动态联编来完成虚函数调用。C++标准并没有规定如何实现动态联编,但大多数的C++编译器都是通过虚指针(vptr)和虚函数表(vtable)来实现动态联编。 基本的思路是: (1)为每一个包含虚函数的类建立一个虚函数表,虚函数表的每一个表项存放的是个虚函数在内存中

2015-11-17 19:25:46 3258 4

原创 C++构造函数与析构函数调用虚函数的注意事项

虽然可以对虚函数进行实调用,但程序员编写虚函数的本意应该是实现动态联编。在构造函数中调用虚函数,函数的入口地址是在编译时静态确定的,并未实现虚调用。但是为什么在构造函数中调用虚函数,实际上没有发生动态联编呢?1. 不要在构造函数中调用虚函数的原因第一个原因,在概念上,构造函数的工作是为对象进行初始化。在构造函数完成之前,被构造的对象被认为“未完全生成”。当创建某个派生类的对象时,如果在它的基类的构造

2015-11-16 21:25:08 7028

原创 C++虚调用及其调用的具体形式

1.虚调用的定义虚调用是相对于实调用而言,它的本质是动态联编。在发生函数调用的时候,如果函数的入口地址是在编译阶段静态确定的,就是是实调用。反之,如果函数的入口地址要在运行时通过查询虚函数表的方式获得,就是虚调用。2.虚函数的几种实调用的情形2.1不通过指着或者引用调用虚函数虚调用不能简单的理解成“对虚函数的调用”,因为对虚函数的调用很有可能是是调用。考察如下程序。#include <iostrea

2015-11-16 19:49:36 1888

原创 RTTI简介

代码编译运行平台:VS2012+Debug+Win32RTTI是Runtime Type Identification的缩写,是“运行时类型识别”的意思。面向对象的编程语言,象C++,Java,Delphi都提供了对RTTI的支持。 本文将简略介绍 RTTI 的一些背景知识、描述 RTTI 的概念,并通过具体例子和代码介绍什么时候使用以及如何使用 RTTI。本文还将详细描述两个重要的 RTTI 运算

2015-11-14 03:14:47 1830

原创 C++ 虚拟继承与虚基类

1.多重继承带来的问题C++虚拟继承一般发生在多重继承的情况下。C++允许一个类有多个父类,这样就形成多重继承。多重继承使得派生类与基类的关系变得更为复杂,其中一个容易出现问题是某个基类沿着不同的路径被派生类继承(即形成所谓“菱形继承”),从而导致一个派生类对象中存在同一个基类对象的多个拷贝。 多重继承带来同一个基类对象在派生类对象中存在多个拷贝的问题,考察如下代码。#include <iostr

2015-11-13 22:58:35 1747

原创 C++ 函数重载、隐藏与覆盖的区别

函数重载1.1函数重载的定义C++规定在同一作用域中,同名函数的形式参数(指参数的个数、类型或者顺序)不同时,构成函数重载(Function Overload)。1.2函数重载的用法比如,要从两个变量中返回其中较大的一个值,可以编写如下两个构成重载的函数。

2015-11-12 23:48:20 2464

原创 C/C++ sizeof(下)

sizeof作用于基本数据类型,在特定的平台和特定的编译中,结果是确定的,如果使用sizeof计算构造类型:结构体、联合体和类的大小时,情况稍微复杂一下。

2015-11-10 22:08:55 2093

原创 C/C++数组与指针详解

数组数组大小(元素个数)一般在编译时决定,也有少部分编译器可以运行时动态绝对数组大小,比如icpc(intel C++编译器)。1.1数组名的意义数组名的本质是数组第一个元素的首地址,也是数组的首地址。数组名所代表的地址是在编译阶段确定的,因此 数组名是一个地址常量,不允许为数组名赋值。

2015-11-10 21:13:59 1860

原创 C++ 基类私有成员会被继承吗

1.派生类间接访问继承私有成员在类的继承中,类的私有成员在派生类中是“不可见“的,这种”不可见“是指在派生类的成员函数中,或者通过派生类的对象(指针,引用)不能直接访问它们。但是,不能直接访问并不代表不能访问。在派生类还是能够通过调用基类的共有函数的方式来间接地访问基类的私有成员,包括私有成员变量和私有成员函数。考察如下程序。#include <iostream>using namespace s

2015-11-05 00:51:24 13277 4

原创 C++ 内存池介绍与经典内存池的实现

1.默认内存管理函数的不足利用默认的内存管理函数new/delete或malloc/free在堆上分配和释放内存会有一些额外的开销。系统在接收到分配一定大小内存的请求时,首先查找内部维护的内存空闲块表,并且需要根据一定的算法(例如分配最先找到的不小于申请大小的内存块给请求者,或者分配最适于申请大小的内存块,或者分配最大空闲的内存块等)找到合适大小

2015-11-01 00:04:38 21945 20

C版六中常见排序算法

C语言实现冒泡排序、快速排序、选择排序、堆排序、简单插入排序和希尔排序,并附上代码注释

2013-11-26

C语言版本Linux环境下MD5加密函数

C语言版本Linux环境下MD5加密函数,需要在Linux换进下运行。经测试验证,完全正确,内附带使用说明,谢谢

2013-11-05

C语言MD5算法实现

C语言实现MD5,经测试验证,散列过程完全正确,可供开发者使用!

2013-10-24

C#简单词法分析器

用C#编写的词法分析器,简单实用,适合上交编译原理实验作业,并附有实验报告,用VS2010即可打开原工程.绝对实用!

2013-05-06

C#编写代码生成器源码

C#编写的可连接数据库,进行模板代码生成器,为源码,用VS2010打开。

2013-04-04

JSP连接数据库简单留言板实验报告

贴有源码,JSP连接MySql数据库制作的简易的留言板,并附上实验报告

2013-03-27

tinyxml2+示例代码+介绍文档

资源包含2015.9.23从官网下载的tinyxml2的源码和自己编写的示例代码还有介绍文档,容易上手。官网的示例代码和文档晦涩难懂,才自己整理。

2015-09-26

TinyXML2.rar

C++轻量XML文件解析库!用于C++项目中进行XML文件的读取和创建!使用方法见本人blog!

2015-03-14

Voronoi Diagram维诺图

内包括C#实现的Voronoi Diagram源码,可执行程序和实验报告,请用VS2012或以上版本打开原工程文件。

2015-03-02

XShell5 rz上传文件出现乱码

发表于 2017-07-22 最后回复 2020-07-15

linux是如何找到通过文件名称找到inode

发表于 2016-11-10 最后回复 2020-05-18

Linux的sort命令排序后重定向原来的文件为什么为空?

发表于 2017-03-10 最后回复 2020-02-19

Dablelv的留言板

发表于 2020-01-02 最后回复 2020-01-02

mysql正则表达式如何匹配GBK中文

发表于 2017-07-16 最后回复 2019-10-14

为什么img的margin-top无效,margin-bottom有效?img已经设置为block。

发表于 2016-09-19 最后回复 2019-08-12

VS2015如何禁止C++11?

发表于 2016-12-27 最后回复 2019-07-22

MySQL 如何查看当前数据库中建立的临时表,show tables是无法显示已经建立的临时表的!

发表于 2016-06-23 最后回复 2019-07-09

C/C++程序中堆区最大有多大?

发表于 2015-05-17 最后回复 2019-06-30

C++类成员函数定义在类体内为什么不会报重定义错误

发表于 2016-08-18 最后回复 2019-03-12

为什么要删除"R语言是动态语言还是静态语言?"的问答提问?

发表于 2018-06-15 最后回复 2018-06-15

新版文章管理为什么没有按照文章类型(原创、转载和翻译)查看的功能?

发表于 2018-05-08 最后回复 2018-05-09

Linux环境下,cout无法输出结构体对象成员的地址

发表于 2017-08-09 最后回复 2017-08-10

ERROR 126 (HY000) at line 1: Incorrect key file for table '/tmp/#sql_6d45_0.MYI'

发表于 2017-07-23 最后回复 2017-08-10

github不clone可以上传文件夹吗

发表于 2017-01-09 最后回复 2017-08-09

正则表达式如何利用前面的子表达式,但不匹配前面捕获的内容?

发表于 2017-02-23 最后回复 2017-07-23

Linux shell 函数可以return负数吗?

发表于 2017-07-20 最后回复 2017-07-23

ERROR 1062 (23000) at line 1: Duplicate entry '1332883220' for key 'group_key'

发表于 2017-07-17 最后回复 2017-07-19

华为C++岗笔试题:字符串变换最小费用

发表于 2016-11-02 最后回复 2017-07-16

C++中cout<<setw()<<endl;中cout<<setw()的原理?

发表于 2016-05-03 最后回复 2017-04-21

ls的结果为什么能够自适应占满一行?

发表于 2016-11-09 最后回复 2017-01-09

外部排序只能用归并排序吗?还有其它的方法吗?

发表于 2016-09-12 最后回复 2016-12-27

请问CSDN的CSTO软件交易平台的英文全称是什么?

发表于 2016-07-26 最后回复 2016-11-16

C++析构函数为什么不能有返回值

发表于 2016-09-14 最后回复 2016-11-10

JavaScript中循环给元素添加onclick事件局部变量的值均相同的怪异现象

发表于 2016-09-02 最后回复 2016-09-12

驱动程序一定要与具体的硬件设备关联吗?

发表于 2016-09-07 最后回复 2016-09-10

CSDN-Markdown为什么不能为表格设置如下的样式

发表于 2015-09-17 最后回复 2016-08-24

使用wpritf输出中文

发表于 2016-08-23 最后回复 2016-08-24

Linux下系统调用execl会等待一段时间才执行指定的可执行程序,这是为什么?

发表于 2015-09-11 最后回复 2016-08-23

MySQL中show index from [tableName]可以作为IFEXISTS判断条件吗

发表于 2016-07-01 最后回复 2016-08-23

CSDN为何上传的资源迟迟得不到显示

发表于 2016-08-17 最后回复 2016-08-23

shell编程中typeset没有选项是什么意思?

发表于 2016-06-26 最后回复 2016-06-29

Object reference not set to an instance of an object.

发表于 2016-06-25 最后回复 2016-06-26

CSDN如何查看自己的博客有没有上极客头条

发表于 2016-04-26 最后回复 2016-04-28

remove_copy_if可以用于map吗,如果可以给出示例代码

发表于 2016-04-25 最后回复 2016-04-25

CSS浮动为什么不会遮盖同级元素

发表于 2015-09-17 最后回复 2016-04-25

g++ 编译选项 -Wno-unknown-pragmas -Wno-format -pg分别是什么意思

发表于 2015-08-20 最后回复 2016-03-28

linux下可执行程序通过shell输入其名称,不马上运行,阻塞一段时间才开始执行,为什么?

发表于 2015-09-13 最后回复 2015-09-13

CSDN 博客经常出现服务器错误,无法发表博文,不得不吐槽!很无语!

发表于 2015-08-15 最后回复 2015-09-11

CSDN CMarkDown的一个bug

发表于 2015-08-25 最后回复 2015-09-11

HTML 如何设置图片宽高分别为原宽高的不同比例?

2020-08-22

Golang 如何进行标准错误输出

2019-12-24

git branch -dr origin/<branchname> 无法删除远端分支

2019-09-16

为什么 Golang 中序列化与反序列的函数一般命名为 marshal 与 Unmarshal 呢?

2019-06-26

golang main包可以被import吗

2019-06-11

golang小数默认是float32还是float64?

2019-05-28

golang const 可以修饰函数形参吗

2019-05-28

ldconfig命令全称是什么呢?

2019-04-02

Linux中 链接器 ld 命令的全称是什么英文单词?

2019-03-12

golang的struc成员后跟字符串有什么作用?

2019-03-15

ssh命令默认端口如何查看

2019-02-15

ssh客户端为什么不指定端口也可以登录成功

2019-02-15

C/C++的预处理文件的后缀为什么约定为.i

2019-01-24

go实现一个interface需要实现所有方法吗?

2019-01-14

go为什么不能获取字符串某个字符地址?

2019-01-13

date命令将时间戳转为可读时间为什么需要加@符号

2018-12-06

GNU C++定义对象时对象名称被括号包围且前面有个下划线是什么意思

2018-10-09

git merge可以操作远端分支吗?

2018-08-16

Google C++编程风格指南中6.10节流中不支持字符串操作符重新排序 什么意思

2018-08-05

5.5.50-MariaDB的索引为什么在 where in子句中无法生效,MySQL可以?

2018-07-07

C++模板元编程和编写模板有什么区别?

2018-06-17

g++ -S将源码编译成汇编代码,使用的是哪个工具?

2018-06-11

缓冲溢出,为什么不报错?

2018-05-16

从长度为n的数组中找出同时满足下面两个条件的所有元素,时间复杂度为O(n)。

2018-05-28

为什么C++局部数组变量地址间隔是16字节的倍数?

2018-05-17

RLF、HRLF控制字符到底是什么

2018-05-10

printf关于浮点数的四舍五入的奇怪问题?

2018-05-09

stringstream的输入与输出的用法

2018-03-19

使用JS如何获取剪贴板内容

2018-03-06

Linux命名管道为什么叫FIFO?

2018-02-07

Linux下printf与wprintf不能同时使用?

2018-01-15

C标准库函数setvbuf的名称全称

2018-01-15

mysql count distinct 加条件

2017-06-15

awk如何获取除最后一行的所有行?

2017-05-19

rz命令如何上传文件夹

2017-05-07

CSS浮动为什么不会遮盖同级元素

2015-09-17

Linux下系统调用execl会等待一段时间才执行指定的可执行程序?

2015-09-11

C/C++程序中堆区最大有多大?

2015-05-17

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