自定义博客皮肤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

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

原创 C++ 模板特化与偏特化

1.模板特化1.1概述模板特化(template specialization)不同于模板的实例化,模板参数在某种特定类型下的具体实现称为模板的特化。模板特化有时也称之为模板的具体化,分别有函数模板特化和类模板特化。1.2函数模板特化函数模板特化是在一个统一的函数模板不能在所有类型实例下正常工作时,需要定义类型参数在实例化为特定类型时函数模板的特定实现版本。查看如下例子。...

2018-08-29 10:25:57 6240 4

原创 C++17 fold expression

1.简介C++11增加了一个新特性变参模板(variadic template),它可以接受任意个模版参数,参数包不能直接展开,需要通过一些特殊的方法,比如函数参数包的展开可以使用递归方式或者逗号表达式,在使用的时候有点难度。C++17解决了这个问题,通过fold expression(折叠表达式)简化对参数包的展开。2.语法形式折叠表达式共有四种语法形式,分别为一元的左折叠和右折...

2018-08-28 16:23:11 1543 1

原创 C++11 变参模板

1.概述2.可变模版参数的展开2.1变参函数模版2.1.1递归函数方式展开参数包2.1.2逗号表达式展开参数包2.2变参类模版2.2.1偏特化与递归方式展开2.2.2继承方式展开3.变参模板的应用3.1消除重复代码3.2实现泛化的delegate4.总结参考文献1.概述变参模板(variadic template)是C++11新增的最强大的...

2018-08-28 14:51:55 1562

原创 C++0x 通用属性

1.编译器扩展属性2.C++11通用属性2.1语法格式2.2[[ noreturn ]]2.3[[carries_dependency]]3.C++14与C++17通用属性参考文献1.编译器扩展属性C++在不断的发展,但每一阶段的C++标准提供的功能都很难完全满足现实需求,于是为了弥补标准的不足或者扩增特性应用场景所需的特性,各大C++编译器厂商多多少少在标准之...

2018-08-27 23:57:18 966

原创 C++11 原生字符串

1.基本概念与作用原生字符串(Raw String)指不进行转义“所见即所得”的字符串。很多编程语言早已支持原生字符串,如C#、Python、Shell等。C++作为一门高级程序设计语言,自然不能自甘落后,从C++11开始,C++也开始支持原生字符串。很多时候,当我们需要一行字符串的时候,字符串转义往往成了一个负担,写和读都带了很大的不便。例如,对于如下路径”D:\workdataDJ\c...

2018-08-24 20:12:15 5079

原创 C++11 Unicode 支持

1.char16_t与char32_t在C++98中,为了支持Unicode字符,使用wchar_t类型来表示“宽字符”,但并没有严格规定位宽,而是让wchar_t的宽度由编译器实现,因此不同的编译器有着不同的实现方式,GNU C++规定wchar_t为32位,Visual C++规定为16位。由于wchar_t宽度没有一个统规定,导致使用wchar_t的代码在不同平台间移植时,可能出现问题。...

2018-08-24 13:20:26 3185 5

原创 C++11 继承构造函数

1.简介子类为完成基类初始化,在C++11之前,需要在初始化列表调用基类的构造函数,从而完成构造函数的传递。如果基类拥有多个构造函数,那么子类也需要实现多个与基类构造函数对应的构造函数。class Base{public: Base(int va) :m_value(va), m_c(‘0’){} Base(char c) :m_c(c) , m_value(0){...

2018-08-15 14:43:53 7150 5

原创 C++11 委托构造函数

1.简介委托构造函数(Delegating Constructor)由C++11引入,是对C++构造函数的改进,允许构造函数通过初始化列表调用同一个类的其他构造函数,目的是简化构造函数的书写,提高代码的可维护性,避免代码冗余膨胀。通俗来讲,一个委托构造函数使用它所属的类的其他构造函数执行自己的初始化过程,或者说它把自己的一些(或者全部)职责委托给了其他构造函数。和其他构造函数一样,一个委托...

2018-08-15 14:41:39 1173

原创 Linux 命令(45)—— svn 命令

1.命令简介SVN是Apache Subversion的缩写 ,是一个开放源代码的版本控制系统。相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS转移到Subversion。Subversion 在 2000 年由 CollabNet开发,现在已发展成为Apache软件基金会的一个项目。svn是Apache Subversion的客户...

2018-08-13 20:47:27 306

原创 C++11 POD 类型

POD(Plain Old Data,普通旧数据)类型是从C++11开始引入的概念,Plain代表它是一个普通类型,Old代表它可以与C兼容。通俗的讲,一个类、结构、共用体对象或非构造类型对象能通过二进制拷贝(如memcpy())后还能保持其数据不变正常使用的就是POD类型的对象。严格来讲,一个对象既是普通类型(Trivial Type)又是标准布局类型(Standard-layout Type)...

2018-08-09 11:50:33 1658

原创 C++ STL 四种智能指针

STL一共给我们提供了四种智能指针:auto_ptr、unique_ptr、shared_ptr和weak_ptr,auto_ptr是C++98提供的解决方案,C+11已将将其摒弃,并提出了unique_ptr作为auto_ptr替代方案。虽然auto_ptr已被摒弃,但在实际项目中仍可使用,但建议使用较新的unique_ptr,因为unique_ptr比auto_ptr更加安全,后文会详细叙述。...

2018-08-07 11:25:13 40522 15

原创 C++异常处理的开销

C++异常是C++有别于C的一大特性 ,异常处理机制给开发人员处理程序中可能出现的意外错误带来了极大的方便。但是天下没有免费的午餐,使用异常我们必须为之付出一定的代价。 为了实现异常,编译器会引入额外的数据结构与处理机制,这都会增加系统的开销。C++异常处理使用try、throw和catch三个关键词来完成,在程序执行过程中,异常处理流程大致如下:当函数体内某处发生异常(trow 异常)时,...

2018-08-06 23:07:54 957

原创 C++使用引用捕获异常

catch子句捕获异常时既可以按值传递,也可以按照引用传递,甚至按照指针传递,但推荐使用引用捕获异常。考察如下程序:#include <iostream>using namespace std;class Base{public: Base() { cout << "Base's constructor" << ...

2018-08-06 20:46:46 1119

原创 C++特性使用建议

1.引用参数 使用引用替代指针且所有不变的引用参数必须加上const。在C 语言中,如果函数需要修改变量的值,参数必须为指针,如int foo(int *pval),在 C++ 中,函数还可以声明引用参数int foo(int &val),定义引用参数防止出现 (*pval)++ 这样丑陋的代码。像拷贝构造函数这样的应用也是必需的,而且更明确,不接受 NULL 指针。2.右值引用 ...

2018-08-05 23:29:00 367

原创 C++编码格式建议

每个人都可能有自己的代码风格和格式,但如果一个项目中的所有人都遵循同一风格的话,这个项目就能更顺利地进行。每个人未必能同意下述的每一处格式规则,而且其中的不少规则需要一定时间的适应,但整个项目服从统一的编程风格是很重要的,只有这样才能让所有人轻松地阅读和理解代码。1.字符编码尽量不要使用非ASCII字符,万不得已时才使用。源码文件请使用UTF8编码。现如今字符编码种类繁多,每一个国家和...

2018-08-04 20:30:03 850

原创 C++命名方式建议

一个大型项目,参与开发人员众多,每个人的编码风格迥异,为保持代码风格统一,提高代码可读性与可维护性,一个重要的约定就是命名方式。良好统一的命名方式能让我们在不需要去查找类型声明的条件下快速了解某个名字代表的含义。命名涉及目录、文件、名字空间、类型、函数、变量、枚举、宏等等。事实上,我们对代码的理解和认知是非常依赖这些命名方式。关于命名约定,一个通用规则就是名称应具有描述性,少用缩写。尽可能使用...

2018-08-03 22:22:33 1585

原创 C++ 注释风格建议

有个笑话,一位从不写注释的程序员在编写一段复杂的代码时,骄傲地认为这段代码只有自己和上帝知道它是干嘛的,等过了一段时间再回顾时,发现没有注释,感叹到这段代码现在只有上帝知道它是干嘛的。可见,注释是项目中不可或缺的部分,不仅是为了帮助团队其它人员快速理解代码,也是帮助自己快速恢复对代码功能的了解。随意,我们对注释不过要与吝啬,该书写时就书写。虽然注释书写起来有点麻烦,但是为了提供程序本身额外的信...

2018-08-02 12:52:23 6470

原创 C++认识容器的迭代器

1.错误的map删除操作假设有个map容器,用于存储大学班级中各个家乡省份对应的学生数,key为省份中文全拼,value为学生数。现需要删除人数为0的记录,删除代码如下:map<string,int > countMap;for(map<string,int>::iterator it=countMap.begin();it!=countMap.end();+...

2018-08-01 21:43:10 528 2

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

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