c++概念
文章平均质量分 91
Dawn_sf
这个作者很懒,什么都没留下…
展开
-
STL — 浅析一级空间配置器
浅析一级空间配置器template < class T, class Alloc = allocator<T> >class vector;上面是我们熟悉不能再熟悉的vector的声明式,我们以前也曾经尝试实现过vector,但是我们实现当中只有一个class T. 但是我们拉出来www.cplusplus.com当中声明,我们突然发现居然有两个模板参数? 然后我发现...原创 2017-12-11 14:16:00 · 937 阅读 · 1 评论 -
C++ —面向对象之多态的实现与应用
多态今天我们的主角就是多态了,那么什么多态呢?多态有什么用?多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。当多态应用形参类型的时候,可以接受更多的类型。当多态用于返回值类型的时候,可可以返回更多类型的数据。多态可以让你的代码拥原创 2017-04-05 09:49:50 · 1773 阅读 · 0 评论 -
模板为什么不支持分离编译?
模板为什么不支持分离编译?首先,一个编译单元(translation unit)是指一个.cpp文件以及它所#include的所有.h文件,.h文件里的代码将会被扩展到包含它的.cpp文件里,然后编译器编译该.cpp文件为一个.obj文件(假定我们的平台是win32),后者拥有PE(Portable Executable,即windows可执行文件)文件格式,并且本身包含的就已经是转载 2017-12-05 22:32:47 · 605 阅读 · 0 评论 -
STL — SGT STL的私房菜: __type_traits
SGT STL的私房菜: __type_traitstraits原创 2017-12-23 16:28:42 · 497 阅读 · 0 评论 -
STL — 从源码层面区别map set和multiset multimap
从源码层面区别map set和multiset multimpset特性为原创 2017-12-22 15:53:20 · 592 阅读 · 0 评论 -
STL — set容器的使用详解
set容器的使用详解其实map和set是天生一对原创 2017-11-06 16:51:21 · 3156 阅读 · 0 评论 -
STL — map容器用法的详解
成员函数at查找具有指定键值的元素。begin返回一个迭代器,此迭代器指向映射中的第一个元素。cbegin返回一个常量迭代器,此迭代器指向映射中的第一个元素。cend返回一个超过末尾常量迭代器。clear清除映射的所有元素。count返原创 2017-11-06 15:30:54 · 5036 阅读 · 0 评论 -
STL — 迭代器设计思维(二)
迭代器设计思维(二)上一篇博客主要介绍了STL迭代器当中的原创 2017-12-21 09:50:53 · 422 阅读 · 0 评论 -
C/C++ — 写时拷贝
写时拷贝原创 2017-03-27 10:16:59 · 3295 阅读 · 2 评论 -
STL — 迭代器设计思维(一)
迭代器设计思维 不论是泛型编程原创 2017-12-19 12:46:31 · 1394 阅读 · 0 评论 -
STL — STL迭代器的原理以及迭代器失效
STL迭代器 作为STL六大组件之一Iterator(迭代器)模式又称Cursor(游标)模式,用于提供一种方法顺序访问一个聚合对象中各个元原创 2017-09-11 09:12:34 · 6392 阅读 · 0 评论 -
STL — vector源代码剖析
vector源代码剖析vector的数据安排以及操作方式,与array非常相似. 两者的唯一差别在于空间的运用的灵活性. array是静态空间,一旦配置了就不能够再改变. 要换个大一点的房子,可以,一切琐细得由客户端自己来: 首先配置一块新空间,然后将元素从旧址一一搬往新址,再把原来的空间释放还给系统. vector是动态空间,随着元素的加入,它原创 2017-12-21 16:08:31 · 2197 阅读 · 0 评论 -
C++ — 智能指针的简单实现以及循环引用问题
智能指针____________________________________________________今天我们来看一个高大上的东西,它叫智能指针。 哇这个名字听起来都智能的不得了,其实等你了解它你一定会有一点失望的。。。。因为它说白了就是个管理资源的。智能指针的原理就是管理资源的RALL机制,我们先来简单了解一下RALL机制:RALL机制便原创 2017-04-17 17:14:21 · 2350 阅读 · 0 评论 -
C++总结 — C++知识导论图
C++知识导论图以上就是C++的知识的一点总结,当然这也只是延伸到面,并没有延伸到点. 具体更加细致的知识点需要你更加努力的学习. 上面的知识点我基本也有对应的博客,特别是面向对象那块的我写的应该还是蛮仔细的. 如果不够了解这些知识的人类可以点开C++专栏找到对应的知识点. 还有由于上转图片有限制,如果看不清楚 可以留下邮箱我给你发原图! 这些知识点如果那里有疏漏或者错误,还请大家不吝赐教,共同原创 2018-01-14 09:52:38 · 2253 阅读 · 37 评论 -
C++ — 全特化和偏特化
全特化和偏特化原创 2017-05-04 16:31:15 · 3867 阅读 · 0 评论 -
C++ — 模板的详解
模板模板是什么呢??原创 2017-04-10 15:37:50 · 1030 阅读 · 0 评论 -
C/C++ —语言判断数字或字符的函数总结
原型:extern int isalnum(int c); 用法:#include 功能:判断字符变量c是否为字母或数字 说明:当c为数字0-9或字母a-z及A-Z时,返回非零值,否则返回零原型:extern int isupper(int c);头文件:(旧版本的编译器使用ctype.h>)功能:判断字符c是否为大原创 2017-03-16 08:36:12 · 8126 阅读 · 0 评论 -
C++ — new和delete的总结
C++动态内存管理C语言用malloc,calloc,relloc和free来进行动态内存管理。但是在C++中就变得不一样了。C++通过new和delete动态管理内存。new/delete动态管理对象。new[]/delete[]动态管理对象数组。这里提一下,malloc和free,new和delete,new[]和delete[]一定要成原创 2017-03-13 20:43:30 · 1575 阅读 · 0 评论 -
C++ — 内联函数
内联函数1:定义: 它们看起来象函数,运作起来象函数,比宏(macro)要好得多,使用时还不需要承担函数调用的开销。当内联一个函数时,编译器可以对函数体执行特定环境下的优化工作。这样的优化对"正常"的函数调用是不可能的。2:规则: inline关键字必须和函数体定义放在一起才可以实现内联,仅仅将inline放在函数声明之前不起任何作用。inline是转载 2017-03-08 07:47:16 · 566 阅读 · 0 评论 -
C语言总结 — 知识点导论图
C语言知识点导论图上图相应的知识点我大多都会有一篇关于此知识点介绍更多的博客,如果概念不是很清楚,可以从C语言专栏进去寻找相应博客. 还有由于上转图片有限制所以字体来说,不是很清楚,如果需要原图的话留下邮箱 我给大家发送~ 如果有哪些遗漏的知识点还请大家不啬赐教,共同进步~原创 2017-12-29 21:07:10 · 2902 阅读 · 72 评论 -
STL — 内存基本处理工具(<stl_uninitialized.h>)
内存基本处理工具STL定义有5个全局函数原创 2017-12-21 21:19:06 · 1171 阅读 · 0 评论 -
STL — hash_map/hash_set源代码剖析
hash_map/hash_set源代码剖析虽然STL只规范复杂度与接口,并不规范实现方法,但STL set多半以RB_Tree. SGI 则是在 STL标准之外另又提供了一个所谓的hash_set,以hashTable的底层机制. 由于hash_set所供应的操作接口,hashTable都提供了,所以几乎所有的hash_set操作行为,都只是转调用hashTable的操作行为而已.运用set为...原创 2017-12-27 12:39:18 · 639 阅读 · 0 评论 -
处理大数据运算的利器 — 位图原理以及设计
位图和布隆过滤器对于这个博客的内容之前我先来原创 2017-11-16 12:46:48 · 1820 阅读 · 1 评论 -
处理大数据运算的利器 — 布隆过滤器原理以及设计
布隆过滤器说到布隆过滤器原创 2017-11-17 15:56:03 · 2038 阅读 · 0 评论 -
C++语言— 类中的赋值运算符重载
赋值运算符重载赋值运算符的重载在这几个默认的成员函数中的位置也算是举足轻重的,它也是不好理解的一个,下面是我自己写的一个复数类,这里面会将赋值运算符重载踏踏实实的过完。赋值运算符的重载的基本格式: operator + 合法的运算符 构成函数名(重载class Complex{public: Complex(double real = 0.原创 2017-03-06 20:13:44 · 1187 阅读 · 0 评论 -
VS2013 — 常用快捷键
VS2013 — 常用快捷键文章出处:http://blog.csdn.net/lushuner/article/details/23688629VS2013常用快捷键: 1.回到上一个光标位置/前进到下一个光标位置 1)回到上一个光标位置:使用组合键“Ctrl + -”; 2)前进到下一个光标位置:“Ctrl + Shi转载 2017-06-04 12:47:41 · 914 阅读 · 3 评论 -
c++ — 实现一个简单的string类
string类的实现C++使用起来非常方便,原因的它里面包含的类,这种面向对象的思想让我们编程变得异常方便。今天我们来实现一个string类,这个类主要的作用就是在C++中灵活的使用字符串。现在我们一步一步的来,一个类首先应该写出他的成员,和它的默认函数,构造函数和析构函数显得尤为重要,首先我们来看构造函数。 //构造函数 String(char *st原创 2017-03-13 17:19:00 · 2977 阅读 · 0 评论 -
C++ — 类型萃取
类型萃取类型萃取。原创 2017-04-26 14:30:48 · 10018 阅读 · 6 评论 -
C++ — 多态基础面试题集锦
多态面试题集锦什么是多态答:多态是面向对象的重要特性之一,它是一种行为的封装,是同一种事物所表现出的多种形态,简单地说是”一个接口多种实现“多态的作用答:多态技术允许将父类设置成和他的一个或更多的子对象相等。多态的分类答:有两种类型的多态性:编译时的多态性。编译时的多态性是通过重载来实现的。运行时的多态性。运行时的多态性是通过虚成转载 2017-04-03 08:56:06 · 3100 阅读 · 0 评论 -
C++ — 关于菱形虚拟继承对象模型的探究
菱形继承对象模型我们已经探究菱形继承在继承中的简单的对象模型,当时我们的探究的模型图是这样的:当时我们还没有说虚函数,所以也没有虚函数表这个概念,但是我们知道了虚函数表以后,我们应该知道这里还会有虚函数表这个东西,现在我们继续来探究它,我们来看看继续把这个虚拟继承的模型图补充完整。还是上次的代码,我们给它里面加上打印虚原创 2017-04-08 14:46:49 · 927 阅读 · 0 评论 -
如何写出一个好的程序
我们以memmove函数作为例子,来看我们如何一步步精简和优化你的代码。写之前我们应该知道memmove这个函数有什么用?他就是一个按字节的拷贝函数,把目标的内容按字节拷贝到你指定的地址,他和strcpy不同的地方就是他是按字节拷贝,他可以拷贝任意的类型的。现在我们考虑一下,开始第一种方案,只完成拷贝功能NO'1void MyMemMove(char *dst,ch原创 2017-01-23 15:05:52 · 2877 阅读 · 0 评论 -
C++—类中的6个默认成员
类中的默认成员C++这门语言中,面向对象可谓是极其重要的,而类又是面向对象的核心,但是每个类在出生时,他们都是有6个默认的成员的,他们分别为:那么这些默认函数是如何调用的呢?隐含的this指针1.每个成员函数都有一个指针形参,它的名字是固定的,称为this指针,this指针是隐式的。(构造函数比较特殊,没有这个隐含this原创 2017-03-06 18:13:43 · 2272 阅读 · 0 评论 -
C++语言— 类中的析构函数
析构函数在C++中一个类中有6个默认的成员函数,他们说分别是构造函数,拷贝构造函数,析构函数,赋值运算符重载,取地址运算符重载,const所修饰的取地址操作符重载。这里我已经写过构造函数和拷贝构造函数了,今天就是析构函数了。析构函数和构造函数的关系就仿佛是new和delete的关系。当一个对象的生命周期结束时,C++编译系统会自动调用一个成员函数,这个特原创 2017-03-06 19:33:36 · 688 阅读 · 0 评论 -
C++—友元函数
C++友元函数友元函数是什么呢?顾名思义“友元”,朋友的元素,那么大家都可以共享啦,这也就是友元的作用。在C++中友元函数允许在类外访问该类中的任何成员,就象成员函数一样,友元函数用关键字friend说明。那么问题来了,为什么会需要友元函数和友元类呢??类具有封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成原创 2017-03-07 15:15:31 · 540 阅读 · 0 评论 -
C++—初始化列表
初始化列表对类的初始化有2种方法,一种是在构造函数中一次定义,另外一种就是初始化列表。2种方法总的来说还是,初始化列表较为高效,而且有3种情况必须放在初始化列表中分别为:• 常量成员,因为常量只能初始化不能赋值,所以必须放在初始化列表里面• 引用类型,引用必须在定义的时候初始化,并且不能重新赋值,所以也要写在初始化列表里面• 没有默原创 2017-03-09 14:32:58 · 588 阅读 · 0 评论 -
C++语言— 引用与指针的区别
引用的意义和使用刚刚开始接触C++,当然第一个学到的知识点就是引用,那么什么是引用呢?引用不是定义一个新的变量,而是给一个已经定义的变量重新起一个别名。定义的格式为: 类型 &引用变量名 = 已定义过的变量名;引用的特点:一个变量可取多个别名。引用必须初始化。引用只能在初始化的时候引用一次,不能改变为再引用其他的变量。现原创 2017-02-26 19:36:49 · 970 阅读 · 1 评论 -
STL — Map和Set的简易实现
Map和Set的简易实现原创 2017-11-12 21:19:41 · 1456 阅读 · 0 评论 -
C++ — 静态绑定与动态绑定
静态绑定与动态绑定——————————————————————————————————静态绑定,动态绑定算是一个比较偏的知识点,这个也是我在Effective C++这本书当中学习到的. 我觉得很有必要写一篇博客记录.首先我们要知道静态类型和动态类型的概念:静态类型:就是它在程序中被声明时所采用的类型(或理解为类型指针或引用的字面类型),在编译期确定;动原创 2017-10-10 07:43:08 · 1176 阅读 · 2 评论 -
数据结构 — AVL树(平衡二叉树)
AVL树前面几个博客一直都是针对二叉树的基本操作和概念,今天我们是时候上一个硬菜了,AVL树是有难度的,但是当你掌握你它带给你的不仅仅是掌握它的算法,他这里还有红黑树的前身,还有它的旋转操作这是一个很经典的算法,所以我们有理由仔仔细细的掌握它。 好的开始!!!AVL树是根据它的发明者G.M. Adelson-Velsky和E.M. Landis命名的。原创 2017-06-04 17:16:54 · 2395 阅读 · 1 评论 -
C++ — const volatile mutable的用法
const volatile mutable的用法_______________________________________________相信const大家对他并不陌生,可能大家在日常的编写代码当中就会时常用到const,但是剩下的两个关键字不知道我们有没有使用过volatile和mutable两个关键字其实不算特别常用,但是我们一定要知道这个关键字有什么用,应该怎么用.首先const的基本...原创 2017-09-16 14:26:43 · 1579 阅读 · 0 评论