- 博客(19)
- 资源 (52)
- 收藏
- 关注
原创 C++变长数组
什么是变长数组? 变长数组是指在编译时不能确定数组长度,程序在运行时需要动态分配内存空间的数组。1.普通方式实现一维变长数组: #include using namespace std; int main() { int len; cin>>len; //用指针p指向new动态分配的长度为
2017-08-31 22:09:59 27773 1
原创 C++11变长模板使用总结
C++03只有固定模板参数。C++11 加入新的表示法,允许任意个数、任意类别的模板参数,不必在定义时将参数的个数固定,其标准表示:变长模版: 变长函数和变长的模版参数 变长函数: double sum(int n, ...)//求n个double数据之和{ double sum = 0; va_list
2017-08-31 22:07:00 2610
原创 C++模板实现顺序队列
顺序队列是队列的顺序存储结构,顺序队列实际上是运算受限的顺序表。和顺序表一样,顺序队列用一个向量空间来存放当前队列中的元素。由于队列的队头和队尾的位置是变化的,设置两个指针front和rear分别指示队头元素和队尾元素在向量空间中的位置,它们的初值在队列初始化时均应设置为0。 现在我们简单实现一个顺序队列:SeqQueue.htemplate class SeqQueu
2017-08-31 22:04:58 1112
原创 C++模板实现链式栈
链式栈是一种数据存储结构,可以通过单链表的方式来实现,使用链式栈的优点在于它能够克服用数组实现的顺序栈空间利用率不高的特点,但是需要为每个栈元素分配额外的指针空间用来存放指针域。StackNode.htemplate class LinkStack;template class StackNode{private: friend class LinkStack; StackNod
2017-08-31 22:04:33 1317
原创 C++模板实现顺序栈
顺序栈:利用一组连续的存储单元依次存放自栈底到栈顶的数据元素;由于栈顶元素是经常变动的,所以附设top指示栈顶元素在顺序表中的位置,同时也需要知道顺序栈存储空间的起始位置,因此还需设定一个base指针用来指示栈空间的起始位置。 一般约定top指针指向栈顶元素的下一个位置,即新数据元素将要插入得位置。 下面我们使用模板简单实现一个顺序栈:SeqStack.htem
2017-08-27 22:05:37 837
原创 C++模板实现顺序表
顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。 将表中元素一个接一个的存入一组连续的存储单元中,这种存储结构是顺序结构。采用顺序存储结构的线性表简称为" 顺序表"。顺序表的存储特点是:只要确定了起始位置,表中任一
2017-08-27 22:05:20 1676
原创 C++模板实现循环链表
循环链表是另一种形式的链式存贮结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。循环链表分类:(1)单循环链表——在单链表中,将终端结点的指针域NULL改为指向表头结点或开始结点即可。(2)多重链的循环链表——将表中结点链在多个环上。带头结点: 判断空链表的条件是head==head->next;尾指针: 用尾指针r
2017-08-27 22:04:57 1214
原创 C++模板实现双向链表
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。 下面我们使用模板来实现一个简单的双向链表:NodeList.htemplate class DoublyList;template class ListNode{
2017-08-27 22:04:36 1673
原创 C++模板实现单链表
单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。表中的数据是以节点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。以"结点的序列"表示线性表称作线性链表(单链表)单链表是链式存取的结构,为找第 i 个数据元素,必须先找到第 i-1 个数据元素。
2017-08-27 22:04:05 1455
原创 QT多线程使用总结
每个线程可以有它的事件循环,初始线程开始它的事件循环需使用QCoreApplication::exec(),别的线程开始它的事件循环需要用QThread::exec().像QCoreApplication一样,QThreadr提供了exit(int)函数,一个quit() slot。需要注意的是,这些类被设计成在一个单线程中创建与使用,因此,在一个线程中创建一个对象,而在另外的线程中调用它的函数,这样的行为不能保证工作良好。它们是完全可重入的。同样的道理,调用生存在不同的线程中的对象的函数也是不是安全的。
2017-08-27 22:03:05 1424 1
原创 #pragma once用法总结
1.#pragmaonce这个宏有什么作用?为了避免同一个头文件被包含(include)多次,C/C++中有两种宏实现方式:一种是#ifndef方式;另一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别。但两者仍然有一些细微的区别。2.两者的使用方式有何区别?示例代码如下:复制代码 //方式一: #ifndef __SOMEFIL
2017-08-27 22:02:06 53465 11
原创 量化交易,未来互联网金融的发展趋势
量化交易就是一种基于数据和数学模型,对金融市场进行分析、判断和交易的策略和算法。量化交易通过复杂算法和计算机程序,可在金融市场每一个微小的波动中,快速买进(做多)和卖出(做空)股票等金融产品,这样不管金融市场的基本面是向上还是向下,都能从波动中赚钱。此外,由于是程序化交易,也打消了人为交易过程中的情绪影响。 量化交易通过大数据和云计算的数据分析计算,一方面也可以很容易地让证券公司
2017-08-27 22:01:24 951
原创 Qt5 中对 C++11 一些新特性的封装详解(二)
1、static_assert C++11 可通过编译时使用static_assert 来帮助生成更详细的错误信息,在 Qt5 中对应引入了宏 Q_STATIC_ASSERT 和 Q_STATIC_ASSERT_X ,它们可自动判断是否可用 static_assert ,如果不支持则使用其他模板来代替。Qt 大量的使用了一些宏定义,来避免因为编译器不支持某些 API 时采取的相
2017-08-27 22:00:40 834
原创 Qt5 中对 C++11 一些新特性的封装详解(一)
C++11 是现在的 C++ 标准的名称,C++11 为 C++ 语言带来很多新特性。而 Qt 4.8 是 Qt 首个在其 API 中开始使用一些新的 C++11 特性的版本,我之前写过一篇博文:C++11 in Qt 4.8 描述了这个问题,这里不再罗嗦。在 Qt5 中,提供更多 C++11 的特性支持,接下来我们将进行详细的说明。slots (槽) 的 Lambda 表
2017-08-27 22:00:12 1170
原创 C++模板实现哈夫曼树
哈夫曼树(霍夫曼树)又称为最优树.1、路径和路径长度在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1。2、结点的权及带权路径长度若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权。结点的带权路径长度为:从根结
2017-08-27 11:21:46 535
原创 C++模板实现B+树
B+ 树是一种树数据结构,是一个n叉排序树,每个节点通常有多个孩子,一棵B+树包含根节点、内部节点和叶子节点。根节点可能是一个叶子节点,也可能是一个包含两个或两个以上孩子节点的节点。B+ 树通常用于数据库和操作系统的文件系统中。NTFS, ReiserFS, NSS, XFS, JFS, ReFS 和BFS等文件系统都在使用B+树作为元数据索引。B+ 树的特点是能够保持数据稳定有序,其插入与修
2017-08-27 11:13:12 3667 2
原创 C++模板实现二叉树
二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。 二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2^k-1个结点;对任何一棵二叉树T,如果其终端结
2017-08-27 11:06:03 1178
原创 C++模板实现优先级队列
如果我们给每个元素都分配一个数字来标记其优先级,不妨设较小的数字具有较高的优先级,这样我们就可以在一个集合中访问优先级最高的元素并对其进行查找和删除操作了。这样,我们就引入了优先级队列 这种数据结构。 优先级队列(priority queue) 是0个或多个元素的集合,每个元素都有一个优先权。对优先级队列执行的操作有:(1).查找(2).插入一个新元素 (3).删除 一般情况下,查
2017-08-27 10:06:42 831
原创 C++模板实现链式队列
队列 是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。一般队列的存储结构是顺序存储,当队列的存储结构是链式存储结构时(即队列中每个元素都包含一个指向其后继的指针,最后一个元素指针为null),就是链式队列。 下面我们简单实现一个链式队列:Queu
2017-08-27 09:35:00 963
Navicat安装指导及安装资源
2024-03-23
vncserver和vncviewer
2017-06-01
大数据资料集锦
2016-03-30
Hadoop技术全套图书
2016-03-21
Apache Flume Distributed Log Collection for Hadoop
2016-03-21
《Hadoop技术内幕:深入解析MapReduce架构设计i与实现原理》
2016-03-21
《Hadoop技术内幕:深入解析Hadoop Common和HDFS
2016-03-21
jQuery瀑布流经典布局源码
2016-01-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人