
C++/C
文章平均质量分 50
bbings
https://bbing.com.cn/
展开
-
数据结构与算法之二叉查找树
数据结构与算法之二叉查找树原文来自个人博客(求访问/关注/收藏): https://bbing.com.cn/ 优快云个人博客不定期转载什么是二叉查找树对一般容器的查找, 我们可以按顺序遍历, 找到符合要求的元素就返回; 对于元素是有序的容器, 可以使用二分查找等方法查找, 减少操作的时间复杂度.容易知道, 一般查找的平均时间复杂度是O(n), 二分查找的平均时间复杂度是O(logn).什么是二叉查找树?根结点的左子树的结点都小(大)于根结点, 根结点的右子树的结点都大(小)于根结点;原创 2021-03-11 09:30:20 · 164 阅读 · 0 评论 -
数据结构与算法之二叉树的遍历
数据结构与算法之二叉树的遍历原文来自个人博客(求访问/关注/收藏): https://bbing.com.cn/ 优快云个人博客不定期转载遍历二叉树的作用基于二叉树的结构, 衍生出了二叉查找树/平衡二叉查找树/堆等等结构或算法(这些之后会讲), 学会如何遍历一颗二叉树是学习此类"派生二叉树"的基础.二叉树的遍历我们先来看一颗一般的二叉树. 然后根据不同的遍历方式, 看看这颗二叉树结点最终遍历的顺序.前序遍历前序遍历就是按照先根结点, 再左右子结点的方式去遍历(root -> l原创 2021-03-03 15:10:58 · 229 阅读 · 1 评论 -
数据结构与算法之单调栈
数据结构与算法之单调栈原文来自个人博客(求访问/关注/收藏): https://bbing.com.cn/ 优快云个人博客不定期转载单调栈顾名思义, 单调栈就是其元素单调的栈, 满足两个特性:是栈栈元素单调递减(<)或者单调递增(>)当然, 关于第二点也可以是单调不递减(>=)或者单调不递增(<=).构造一个单调栈从实践出发, 看看怎么构建一个单调栈;比如有一个正整数列表: [2 1 3 4 7 5]构建其中之一的单调不递减栈:列表是否空? 如果空原创 2021-02-03 09:23:25 · 246 阅读 · 1 评论 -
数据结构与算法之栈
数据结构与算法之栈原文来自个人博客(求访问/关注/收藏): https://bbing.com.cn/ 优快云个人博客不定期转载什么是栈栈是一种数据结构, 满足先入后出.一般栈支持以下几个操作:push(n); //数据入栈a.pop(); //数据出栈a.top(); //获取栈顶元素a.size(); //获取栈中元素数量a.empty(); //是否是空栈C++中的stack容器官方文档中, 定义如下template< class原创 2021-02-01 11:20:33 · 164 阅读 · 0 评论 -
C里面的变长参数
C里面的变长参数原文来自个人博客(求访问/关注/收藏): https://bbing.com.cn/ 优快云个人博客不定期转载stdarg.h这里用到的是stdarg.h这个库, 可以在C语言里面实现可变长参数.当然C++会简单得多, C++11之后的模板原生支持可变长参数.几个函数va_list、va_start、va_arg、va_end,定义在stdarg.h内存结构先需要理解C/C++函数入参的顺序.按照以下的demo, 将其翻译成汇编代码.#include <i原创 2021-01-28 09:34:44 · 269 阅读 · 0 评论 -
C++模板问题之多出的static
C++模板问题之多出的static原文来自个人博客(求访问/关注/收藏): https://bbing.com.cn/ 优快云个人博客不定期转载问题先看以下代码#include <iostream>using namespace std;using uint32 = unsigned int;template<bool ISIN>static void updateVal(uint32 &val){ static uint32 sval;原创 2021-01-25 19:46:01 · 220 阅读 · 0 评论 -
通过返回值‘重载‘函数
通过返回值’重载’函数以下的代码片段涉及到了不少的模板函数, 可以自行去官网查询.前言从实际问题出发, 期望开发一个函数, 可以计算另外一个函数的耗时; 比如测试下面函数的耗时int funcA(int &a, float &b);void funcB(bool &c, char &d, double &e);期望可以这样调用:(cost, ret) = costTime(funcA, a, b);cost = costTime(funcB, c,原创 2021-01-21 11:20:41 · 473 阅读 · 0 评论 -
高精度减法--C++
高精度减法–C++仿照竖式减法,先对其,再对应位相减。算法处理时,先比较大小,用大的减小的,对应位再比较大小,用于作为借位符。#include <iostream>#include <cstring>#define MAXSIZE 20#define MAXOUTSIZE MAXSIZE + 2using namespace std;int main(...原创 2018-09-17 20:50:00 · 1470 阅读 · 1 评论 -
高精度加法--C++
高精度加法–C++仿照竖式加法,在第一步计算的时候将进位保留,第一步计算完再处理进位。(见代码注释)和乘法是类似的。#include <iostream>#include <cstring>#define MAXSIZE 20#define MAXOUTSIZE MAXSIZE + 2using namespace std;int main(){ ...原创 2018-09-17 20:13:38 · 375 阅读 · 0 评论 -
高精度乘法--C++
高精度乘法–C++模仿竖式乘法,在第一步计算的时候将进位保留,第一步计算完再处理进位。(见代码注释)若要处理正负情况,可在数据输入后加以判断,处理比较简单。小数计算也可参照该方法,不过对齐方式需要改变,或者改成二段计算。#include <iostream>#include <cstring>#define MAXSIZE 20#define MAXOUTS...原创 2018-09-17 20:00:06 · 906 阅读 · 0 评论 -
c++时间计算模块
c++时间计算模块可用于计算代码运行耗时、计算代码运行时间线(比如处理与运行时间相关函数)。该模块从实际项目中产生,使用方式仁者见仁智者见智,设计思想可供参考。源码://author: cai bingcheng, 2018#pragma once#include &lt;iostream&gt;#include &lt;chrono&gt;class Get...原创 2018-08-08 16:59:56 · 898 阅读 · 0 评论 -
cbuild-一个创建和管理C++项目的工具
cbuild-一个创建和管理C++项目的工具介绍:这是个人开发的一个管理C++项目的工具,用shell脚本编写。可能会不定期更新,也欢迎大家一起完善。当前开发版本0.1。个版本功能如下:0.0 – 初始版本,具备创建、删除、编译、运行项目基本功能0.1 – 在0.0版本基础上使用模板文件,方便用户定制自我需求使用方法:github地址:https://g...原创 2018-08-07 09:47:16 · 755 阅读 · 0 评论 -
c++日志记录模块
C++ 日志记录模块该模块从实际项目中产生,通过extern声明的方式,可在代码不同模块中生成日志,日志文件名称为随机码加用户指定名称,采用随机码是为了避免日志文件可能被覆盖的问题。愿意的话你也能自己构建个人的日志记录模块,本次分享的模块实现方法比较简单,可能有些地方没考虑清楚。源码://// Created by jerry on 2/12/16.//#inclu...原创 2018-08-10 08:28:03 · 1509 阅读 · 2 评论 -
VSCode中C/C++库文件的配置(自动提示、补全)
VSCode中C/C++库文件的配置之前一直在是用sublime做主要编辑器,现在主要使用VSCode,毕竟大厂制作,从目前的使用情况来看,我更喜欢使用VSCode编辑器。有时候会用VScode来组件C/C++工程,并且用到了一些外部依赖的库文件,比如OpenCV。此时希望VSCode的代码提示功能能够提示OpenCV中的函数,这时候就需要配置工作空间中的C/C++编译环境。如...原创 2018-06-12 20:04:56 · 103906 阅读 · 6 评论 -
Eigen实现坐标转换
(《视觉SLAM十四讲》第三讲习题7)设有小萝卜一号和二号在世界坐标系中。一号位姿q1 = [0.35, 0.2, 0.3, 0.1],t1=[0.3, 0.1, 0.1]。二号位姿q2=[-0.5, 0.4, -0.1, 0.2], t2=[-0.1, 0.5, 0.3].某点在一号坐标系下坐标为p=[0.5, 0, 0.2].求p在二号坐标系下的坐标假设在世界坐标系中p点的坐标为P...原创 2018-05-27 20:31:50 · 5081 阅读 · 2 评论 -
处理视频流时可能出现的重复帧问题及解决办法
在Ubuntu下使用opencv处理视频流时,由于相机帧率跟不上(相机模块在另外一个线程运行,且帧率太低),导致算法会处理一些相同的图像,从而返回相同的结果,如果将结果返回给伺服机构,则可能导致伺服机构奔溃。 想到三种解决方法: 1. 用高帧率的相机,但是由于经费问题,此方案暂缓执行; 2. 判断返回值是否相同,如果返回的数据完全相同,则有比较高的置信度认为这是通过同一幅图像返回的结果;...原创 2018-05-05 14:14:47 · 7344 阅读 · 0 评论 -
C++教程之初识编程
突然想写一份C++教程,并且此教程会尽量使用通俗语言来描述,进入正题!如果你从来没有接触过编程语言,希望我的教程能够帮助你!一、代码示例 当然我希望你暂时不要纠结我在写什么,把代码贴在前面是想给你看看,它会是什么样子的;如果一定要取个名字的话,你可以称这份代码为–“著名的helloworld代码”。#include <iostream>原创 2018-03-21 18:55:59 · 233 阅读 · 0 评论 -
C/C++反三角函数使用注意
最近写的东西用到了数学库中的acos函数,但是代码在运行的时候有时候会出莫名其妙的错误,比如返回值是个特别大的数。最后在debug 的时候发现acos返回的数据很奇怪,但是传入的参数明明没有问题,可以保证是(-1,1)。回想起,double类型的末尾数据时不确定的,当double类型数据alpha = 1.0时其真实值可能是1.00001;这明明是很早就知道的,但是在写代码的时候有时候却很原创 2018-01-27 11:30:29 · 19218 阅读 · 0 评论 -
感知器及其C++的实现
本来计划这篇博客写如何用web前端写2048,但是鉴于以前的代码写得太乱,暂时并不打算继续这个话题了;本篇的主题是“感知器及其C++的实现”,我会简答介绍模式识别中的感知器是个什么东西,并且会给出我写的C++代码进入正题:什么是感知器?数据驱动的引出:比如说某银行的分析软件有这样一项功能,通过输入某客户的个人信息(年龄、性别、职业、收入、欠债情况、信用情况等),返回是否给该客户原创 2017-12-18 22:49:29 · 1346 阅读 · 1 评论