
c++
文章平均质量分 75
德卡拉
始于乐趣 终于经典
展开
-
const&内联&友元
const 常数据成员常成员函数内联友元原创 2017-10-21 19:06:55 · 266 阅读 · 0 评论 -
c++:模板的类型萃取
首先我们通过一个模板类的顺序表,来了解c++在什么情况下需要对不同的类型不同对待。 这里为了说明重点,只写了增容和尾插部分。template <class T>class SeqList{public: SeqList() :_a(NULL) , _size(0) , _capacity(0) {} void CheckC原创 2017-11-24 18:48:43 · 1025 阅读 · 0 评论 -
c++:浅谈强制类型转换
c语言中我们经常使用到强制类型转换,但为什么c++中还要学习新的强制类型转换呢?当然是为了更加方便和灵活地控制不同类型间的强制转换。针对不同的应用需要c++制定了一套专用的强制类型转换:static_cast reinterpret_cast const_cast dynamic_cast四种操作符。<接下来,让我们一一道来! 首先,我们要分清隐式类型转换和显示的强制类型转换。 隐式类型转原创 2017-11-26 17:46:47 · 395 阅读 · 0 评论 -
链表相交带环问题+复杂链表的复制
一, 判断单链表是否带环?若带环,求环的长度?求环的入口点? (1)判断是否带环:利用快慢指针法,快指针一次走两步,慢指针一次走一步,若快慢指针相遇,说明链表带环,并且返回相遇点即此时慢指针所指处,无环则返回NULL。//判断是否带环Node* IsHaveLoop(Node* head){ if(head == NULL) { return NULL;原创 2017-09-23 20:54:27 · 568 阅读 · 0 评论 -
c++:实现双向链表
相比于单链表,除了指向下一个节点的next指针,双向链表在每个节点中,还设置了一个指向前驱节点的prev指针。 双链表示意图 优点:有了向前指向的指针,双向链表的反向查找操作无疑优于单链表,求得了以空间换时间的效果。 缺点:插入或删除节点操作比单链表复杂,需要维护两个指针变量。 双向链表插入结点过程: 双向链表删除结点过程: 完整代码:#includeiostream>原创 2018-02-01 13:12:40 · 775 阅读 · 0 评论 -
STL简介——以及list详解
关于STL你知道多少? 引入: 有的时候,你要在程序中用到堆、栈、队列、链表等一些基本的算法,而你又实在不想自己去实现数据结构教科书中那些繁琐的算法,那么你就可以考虑使用STL。介绍: STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。 STL是一个template程序库。它对容器,迭代器,算法以及函数对象的规约有极佳原创 2018-02-06 20:06:46 · 372 阅读 · 0 评论 -
C++:异常
一,错误处理(传统办法) (1)终止程序。(如段错误) (2)返回错误码。 (3)返回合法值,让程序处于某种非法状态。 (4)调用一个预先设置的出现错误时调用函数(回调函数)除了以上传统的错误处理技术,异常处理机制是一种比较有效的处理系统运行时错误的方法。C++针对异常处理提供了一种标准的方法,用于处理软件程序运行时的错误,并用于处理软件系统中可预知或不可预知的问原创 2018-02-07 20:59:42 · 286 阅读 · 0 评论 -
处理大数据———位图以及布隆过滤器
相应知识点回顾: (一)内存单位的转换 1int = 4byte 1kb = 1024byte 1M = 1024kb 1G = 1024M 4G = 4*1024*1024*1024=42亿九千万(二)逻辑运算 (1)按位与运算&: 只有对应的两个二进位均为1时,结果位才为1 ,否则为0 (2)按位或运算|:只要对应的二个二进位有一个为1...原创 2018-04-22 22:58:02 · 363 阅读 · 0 评论 -
数据结构:哈希表
哈希概念: 构造一种存储结构,通过某种函数使元素的存储位置与它的关键码之间能够建立一一映射的关系,那么在查找时通过该函数可以很快找到该元素。当向该结构中插入元素时,根据待插入元素的关键码,以此函数计算出该元素的存储位置并按此位置进行存放。 当先结构中搜索元素时,对元素的关键码进行同样的计算,把求得的函数值当做元素的存储位置,在结构中按此位置取元素比较,若关键码相等,则搜索成功。 该方...原创 2018-04-21 09:19:21 · 419 阅读 · 0 评论 -
c++:简单分析智能指针
为什么提出智能指针? 首先,我们要知道c++中的动态内存管理是通过一对运算符来控制的: new:在动态内存中为对象分配空间并返回一个指向该对象的指针,我们并可以选择对对象初始化。 delete:接受一个动态对象的指针,销毁该对象,并释放与之关联的内存。可是,我们有时候会忘记释放内存,或者是程序未必会执行到我们释放的那一步,从而造成内存泄漏。有时在尚有指针引用内存的情况下我们就释放了它,在这种情原创 2017-11-29 12:30:30 · 253 阅读 · 0 评论 -
c++入门基础知识
命名空间 C++基本的输入输出流重载C++缺省参数指针和引用原创 2017-10-11 18:28:46 · 912 阅读 · 0 评论 -
深浅拷贝&引用计数写时拷贝
深浅拷贝 引用计数写时拷贝原创 2017-10-29 21:36:35 · 274 阅读 · 0 评论 -
类和对象--默认的成员函数
类和对象 构造函数拷贝构造函数析构函数运算符重载隐含this指针原创 2017-10-13 18:40:08 · 637 阅读 · 0 评论 -
多态+多态对象模型
多态的实现条件 多态(与对象有关 到对象的虚表中找到)=动态联编+虚函数重写 动态联编(运行时决议):指针/引用+虚函数 静态联编(编译时决议)与类型有关,像函数重载和通过对象名调用虚函数虚析构函数探索虚函数表探索单继承对象模型探索多继承的内存布局原创 2017-11-11 21:21:27 · 182 阅读 · 0 评论 -
模板的分离编译
模板 泛型编程:编写与类型无关的逻辑代码。 模板是泛型编程的基础,模板为复用而生,它可以分为两类:模板函数和模板类。 模板函数: 对于一些功能相同而数据类型不同的函数,不必一一定义各个函数,可以定义一个函数模板,系统会在调用函数时根据实参的类型取代函数模板中的数据类型,从而得到具体的函数。 举个简单的例子#include<iostream>#include<string>us原创 2017-11-19 18:01:51 · 370 阅读 · 0 评论 -
继承
我们都知道,c++的三大特性为:封装,继承,多态。今天,我们来看看关于继承的一些问题! is-a和has-a is-a原则:(public继承实现) 赋值兼容规则切片(切割)多继承菱形继承原创 2017-11-08 19:10:09 · 254 阅读 · 0 评论 -
团委成员考核成绩管理系统
团委成员考核成绩管理系统原创 2018-08-22 18:43:46 · 276 阅读 · 0 评论