自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 数据结构与算法(7) -- 二叉查找树

上一个博客介绍了堆结构,这种结构非常有利于查找最大/最小元素。但是其也有一个非常显著的缺点,对于其他的元素的查找非常困难。这一节将要介绍的是二叉查找树,这种结构保持了这样的特性:其父节点大于左子节点,而小于其右子节点。另外因为放假的原因将博客停了一段时间,接下来会恢复这个系列。由于后面博主主要打算找java开发相关的岗位,后续的实例代码和讲解可能要偏向于java,这点和之前一直用c++讲解稍有...

2019-02-26 15:18:05 263

原创 数据结构与算法(6) -- heap

binary heap就是一种complete binary tree(完全二叉树)。也就是说,整棵binary tree除了最底层的叶节点之外,都是满的。而最底层的叶节点由左至右又不得有空隙。以上是一个对heap的简单介绍。本文将用heap指代此种完全二叉树。那么在实际编写代码的时候怎么组织这种数据呢,其实可以用array来存储这种结构的数据。将数组的第0个元素保留不用,从第一个元素开始...

2019-01-05 15:34:25 271

原创 c/c++排坑(5) -- c语言中的申明

C语言的申明总是令人头大,对于这块内容也一直让我头疼。希望通过这篇博客能够稍微梳理一下。材料和例子来源于《C专家编程》一、C语言的申明的优先级规则先来个例子,看看下面这行C代码到底是个啥玩意儿:char * const *(*next)();1.1 优先级规则A 申明从它的名字开始读取,然后按照优先级顺序依次读取。B 优先级从高到低依次是:B.1 声明中被括号括起来的那部分...

2018-12-16 16:09:12 260

原创 数据结构与算法(5) -- deque

vector是单向开口的连续线性空间,deque则是一种双向开口的连续线性空间。所谓双向开口,意思是可以在头尾两端分别做元素的插入和删除操作。stl中deque与vector最大的差异,一在于deque允许常数时间对头端进行元素的插入操作;二是其由分段连续空间组合而成。这部分内容的原理讲解起来并不难,但是要真正正确管理好这个容器,其代码还是有些多的。先来个图:这里的map不是stl那个容...

2018-12-13 16:00:11 222

原创 数据结构与算法(4) -- list、queue以及stack

今天主要给大家介绍几种数据结构,这几种数据结构在实现原理上较为类似,我习惯称之为类list的容器。具体有list、stack以及queue。list的节点Node首先介绍下node,也就是组成list的节点。从面向对象的角度来说节点也是就一个类,list里面包含了node对象的实例,以及操作/管理这些实例的方法。先给出一个粗糙的node的C++代码如下代码块所示。可以看出除了保有当前节点的...

2018-12-12 17:19:59 389

原创 c/c++排坑(4) -- c/c++中返回局部变量

返回c语言中的局部变量先看一段代码猜猜,打印值:#include <iostream>using namespace std;char * func();int main(){ char *buf = func(); cout << "buf:" << buf <<

2018-12-09 17:16:08 582

原创 c/c++排坑(3) -- c/c++中的switch语句

switch语句的简单介绍一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。switch(expression){ case constant-expression : f1(); break; // 可选的 case constant-express...

2018-12-09 16:01:20 426

原创 c/c++排坑(2) -- c语言中的符号重载

所谓的符号重载就是在不同的上下文环境里有不同的意义。甚至有些关键字也被重载而具有好几种意义,这也是C语言的作用域规则对程序员不那么清晰的主要原因。本章内容摘自《c专家编程》P37。符号意义static在函数内部,表示该变量的值在各个调用间一直保持延续性 在函数这一级,表示该函数只对本文可见extern用于函数定义表示全局可以见用于变量,表示它在其他地方定义...

2018-12-09 15:14:33 168

原创 c/c++编程排坑(1)-- 数据类型的“安静”转换

这里主要介绍ANSI C的特性:当执行算术运算时,操作数的类型如果不同,就会发生转换。数据类型一般朝着精度更高、长度更长的方向转换,整型数如果转换为signed不会丢失信息,就转换为signed,否则转换为unsigned。算术转换(K&R C)首先:任何类型为char或short的操作数会被转换为int。任何类型为float的操作数会被转换成double。其次:如果...

2018-12-08 17:30:01 180

原创 数据结构与算法(3)- C++ STL与java se中的vector

介绍了stl 中的vector以及使用小细节,并分析了java se Arraylist与Vector的同步问题。

2018-12-06 17:43:26 215

原创 数据结构与算法(2)- vector概念介绍

声明:虽然本系列博客与具体的编程语言无关。但是本文作者对c++相对比较熟悉,其次是java,所以难免会有视角上的偏差。举例也大多是和这两门语言相关。Vector的出现主要是为了解决数组的静态空间的问题。所谓静态空间指的是一旦配置就不能改变。当然如果你硬要重新配置也是可以的,自己重新申请一块空间,然后把数据搬过去。而vector是动态空间,它的内部机制会自行扩充空间以容纳新元素。 可以用水桶装水...

2018-12-04 20:03:12 395

原创 数据结构与算法(1)- 数据结构概览

声明:虽然本系列博客与具体的编程语言无关。但是本文作者对c++相对比较熟悉,其次是java,所以难免会有视角上的偏差。举例也大多是和这两门语言相关。今天先来看看有哪些常见的数据结构(C++ STL视角,其他应该也大同小异吧。哈哈,我猜的!)。所以之后的内容大多从STL出发,然后顺便对比下java中对应的数据结构。作为一名合格的软件开发人员,我们有时不需要深入对这些结构进行深度了解(原子级了解)...

2018-11-30 17:08:53 183

原创 并行计算实战-双调排序

1.双调序列假设序列A是一个单调递增序列,B是一个单调di'j递减序列,那么由A与B拼接而成的序列C就是一个双调序列。如图1:接下来我们要介绍的一个概念是双调分裂操作:1)将数列的前半部分的各个元素(i值从0到N/2-1)和对应的后半部分的各个元素(i+N/2到N-1)做一一比较;2)如果前半部分的元素大于后半部分的元素,则交换。如果对C进行分裂操作则可以得到D,如法炮制可...

2018-10-12 17:16:45 821

原创 最长回文子串

1.问题描述 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。示例 1:输入: "babad"输出: "bab"注意: "aba"也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"2.暴力求解字符串从左往右迭代,假设下标为i。对每个i向两边搜索,判断相对应的两个字符是否相等。然后分奇偶两种情况:c...

2018-10-12 11:13:24 112

转载 C++文件读取

c++文件和流:ttp://www.runoob.com/cplusplus/cpp-files-streams.html到目前为止,我们已经使用了 iostream 标准库,它提供了 cin 和 cout 方法分别用于从标准输入读取流和向标准输出写入流。本教程介绍如何从文件读取流和向文件写入流。这就需要用到 C++ 中另一个标准库 fstream,它定义了三个新的数据类型:数据类型...

2018-09-28 15:27:19 29257

转载 c++ 中 char 与 string 之间的相互转换问题

第一部分:将  char *    或者    char []   转换为  string可以直接赋值,转换。   第二部分:将   string   转换为 char *    或者    char []    string 是c++标准库里面其中一个,封装了对字符串的操作 把string转换为char* 有  3种方法: 1.  调用  stri...

2018-09-27 14:33:24 66034 1

转载 c++ 深入理解虚函数

转载自:https://www.cnblogs.com/jin521/p/5602190.html为什么使用虚函数?什么是虚函数?虚函数是为了解决什么问题?面向对象的三大特征:封装 多态 继承普通虚函数 虚析构函数 纯虚函数 抽象类 接口类 隐藏 vs 覆盖 隐藏与覆盖之间的关系 早绑定和晚绑定 虚函数表什么是多态?相同对象收到不同消息或不同对象收到相同消息...

2018-09-15 16:35:45 120

转载 C++移动构造函数以及move语句简单介绍

转载自:https://www.cnblogs.com/qingergege/p/7607089.html首先看一个小例子:#include <iostream>#include <cstring>#include <cstdlib>#include <vector>using namespace std;int main()...

2018-09-13 14:34:09 298

转载 C和C++内存模型 C和C++内存模型

转载自:https://www.cnblogs.com/Stultz-Lee/p/6751522.htmlC分为四个区:堆,栈,静态全局变量区,常量区C++内存分为5个区域(堆栈全常代 ): 堆 heap : 由new分配的内存块,其释放编译器不去管,由我们程序自己控制(一个new对应一个delete)。如果程序员没有释放掉,在程序结束时OS会自动回收。涉及的问题:“缓冲区溢出”、...

2018-09-13 12:19:33 1206

转载 C++中让人忽视的左值和右值

前言为了了解C++11的新特性右值引用,不得不重新认识一下左右值。学习之初,最快的理解,莫过于望文生义了,右值那就是赋值号右边的值,左值就是赋值号左边的值。在中学的数学的学习中,我们理解的是,左值等价于等号左边的值,右值等价于等号右边的值;当我们继续学习C语言时,等号=不再叫等号,盖头换面叫做赋值号;那么来到C++我们还能这么理解吗?答案是部分否定的。假如你现在还是这样理解,那么请继续往下...

2018-09-12 14:26:54 163

转载 c++ new 与malloc有什么区别

几个星期前去面试C++研发的实习岗位,面试官问了个问题:new与malloc有什么区别?这是个老生常谈的问题。当时我回答new从自由存储区上分配内存,malloc从堆上分配内存;new/delete会调用构造函数/析构函数对对象进行初始化与销毁;operator new/delete可以进行重载;然后强行分析了一下自由存储区与堆的区别。回来后感觉这个问题其实回答得不怎么好,因为关于ne...

2018-09-12 14:24:47 174

转载 c++ 深入理解虚函数

以下内容转自:https://www.cnblogs.com/jin521/p/5602190.html为什么使用虚函数?什么是虚函数?虚函数是为了解决什么问题?面向对象的三大特征:封装 多态 继承普通虚函数 虚析构函数 纯虚函数 抽象类 接口类 隐藏 vs 覆盖 隐藏与覆盖之间的关系 早绑定和晚绑定 虚函数表什么是多态?相同对象收到不同消息或不同对象收到相...

2018-09-07 20:17:35 103

转载 C++ Boost库简介

  boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化。不过对比STL,boost更加实用。STL集中在算法部分,而boost包含了不少工具类,可以完成比较具体的工作。boost主要包含一下几个大类:字符串及文本处理、容器、迭代子(Iterator)、算法、函数对象和高阶编程、泛型编程、模板元编程、预处理元编程、并发编程、数学相关、纠...

2018-09-06 10:21:31 2452

转载 Java中的装箱和拆箱

 自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题。本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱、拆箱相关的问题。  以下是本文的目录大纲:  一.什么是装箱?什么是拆箱?  二.装箱和拆箱是如何实现的  三.面试中相关的问题  若有不正之处,请谅解和批评指正,不胜感激。  请尊重作者劳动成果,转载请...

2018-09-06 00:28:21 562

转载 C++哪些运算符重载能够重载?

运算符重载是C++极为重要的语言特性之中的一个。本文将用代码实例回答——C++哪些运算符能够重载?怎样重载?实现运算符重载时须要注意哪些? 哪些运算符能够重载,哪些不可重载?C++98,C++0x,C++11对“哪些运算符重载能够重载”有一致的规定。详细例如以下:当中,非常少使用的是“,”(逗号运算符)。  标准相同规定了不可重载的运算符:当中,“::”是作...

2018-09-04 09:13:53 7427

转载 华为fpga服务器上搭建opencv环境

由于项目的需要,现要在华为fpga服务器上搭建一个opencv的环境。具体的搭建过程与此博客 https://blog.csdn.net/kakitgogogo/article/details/52490010# 非常类似,这里直接引用过来:opencv是个跨平台计算机视觉库,很久之前就对opencv感兴趣了,但是由于以前用的是centos6.8,各种依赖项都是版本太老,安装起来十分费尽(...

2018-08-11 21:44:43 1713

原创 opencv 查找表

在opencv中,根据图像的格式的不同以及需求的不同,我们读入图片之后,往往会处理得到不同数据类型的mat。比如uchar(能表示256种强度)。有时候我们不需要这么多种强度,我们就会做color space reduction,也就是将数据的表示范围缩减。uchar类型的数据很方便做这个处理:                                                  ...

2018-08-08 12:19:54 827

转载 Mat类之选取图像局部区域

转自:https://blog.csdn.net/shenwanjiang111/article/details/54318958Mat 类提供了多种方便的方法来选择图像的局部区域。使用这些方法时需要注意,这些方法并不进行内存的复制操作。如果将局部区域赋值给新的 Mat 对象,新对象与原始对象共用相同的数据区域,不新申请内存,因此这些方法的执行速度都比较快。1 单行或单列选择提取矩阵的一行或者一列...

2018-05-29 22:35:38 2247

转载 OpenCV的基本矩阵操作与示例

转自:http://blog.csdn.net/iracer/article/details/51296631OpenCV中的矩阵操作非常重要,本文总结了矩阵的创建、初始化以及基本矩阵操作,给出了示例代码,主要内容包括:创建与初始化矩阵加减法矩阵乘法矩阵转置矩阵求逆矩阵非零元素个数矩阵均值与标准差矩阵全局极值及位置其他矩阵运算函数列表1. 创建与初始化矩阵1.1 数据类型建立矩阵必须要指定矩阵存储...

2018-05-29 22:34:01 135

转载 [LeetCode] Median of Two Sorted Arrays 两个有序数组的中位数

转载自 http://www.cnblogs.com/grandyang/p/4465932.htmlThere are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity s...

2018-02-26 22:02:18 156

原创 445. Add Two Numbers II 两个数字相加 2

一、题目解释You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers

2017-12-07 20:37:59 128

转载 543. Diameter of Binary Tree 二叉树的直径

Given a binary tree, you need to compute the length of the diameter of the tree. The diameter of a binary tree is the length of the longestpath between any two nodes in a tree. This path may or may no

2017-12-07 16:13:09 145

原创 112. Path Sum

一、题目描述Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.For example:Given the below binary tree

2017-12-07 14:51:08 103

原创 DFS

一、DFS介绍    深度优先搜索算法(英语:Depth-First-Search,简称DFS)是一种用于遍历或搜索树或图的算法。沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直

2017-12-07 12:56:41 1531 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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