深圳幻海软件技术有限公司 欢迎您!

  • Apollo Planning学习(9)-------速度规划

    顺着之前学习publicroadplanner的路径规划中lanefollow的task,在得到的规划路径上再进行速度规划。大致思路为先利用STGraph,将障碍物、限速等投影在ST图上,利用全局搜索方法DP算法得到决策,开辟一个凸空间,在利用最优化方法(二次优化和非线性优化)进行速度规划。在进行速

  • C++ vector find()使用? ( if!=vec.end())

    std::vector::find是C++STL中的一个函数,它可以用来在std::vector中查找给定的元素。如果找到了这个元素,它将返回一个迭代器指向该元素,否则将返回一个名为end()的迭代器。下面是一个使用find的示例代码:#include<iostream>#include

  • 缓存替换策略:LRU-K算法详解及其C++实现 CMU15-445 Project#1

    文章目录文章简介算法解析LRU-K替换策略驱逐策略一些重要的概念具体实现数据结构约定伪代码实现C++实现解析源码`LRU-K.h``LRU-K.cpp`测试结语文章简介CMU15-445(FALL2022)Project#1Task#2LRU-K替换策略详解实现,尽量提供思路,也可以为其他同学实现L

  • C++代码赏析:Map、Filter、Reduce

    概念出自Google的论文《MapReduce:simplifieddataprocessingonlargeclusters》,MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来

  • 如何实现 JS 运行时的 Inspector 能力

    无论什么语言,调试能力都是非常重要的,像C、C++等语言,我们可以使用现成的工具去调试。JS也不例外,我们可以通过浏览器来实现对JS的调试,但是JS运行时就不太一样了,因为JS运行时通常独立于浏览器运行,所以无法直接使用浏览器提供的能力,这时候就需要自己实现了。当然JS运行时不需要完全实现调试的功能

  • C++ 20 协程 Coroutine(2,等待体)

    co_await awaiter的用途?明确说C++20的协程大部分概念还算清晰,就是yeild,然后外部利用句柄resume。对协程这个概念有了解的不应该有什么特别难以理解的地方。但co_awaitawaiter比较让人疑惑。上次我已经讲过,awaiter其实是是一个对象,一个接口实现,

  • C++ 20 协程 Coroutine之剖析

    我们来剖析一下协程的过程。通过这个剖析,希望达到梳理协程几个重要概念的关系,把这些点串起来。所以在概念参考我们列出了相应的概念文字。协程的创建C++20协程在启动前,开始会new一个协程状态(coroutinestate​)。然后构造协程的承诺对象(promise​)。承诺对象(promise​)通

  • C++ 20 协程 Coroutine

    C++20协程C++20有一个新玩意,协程。这玩意对C++的未来可能是重要一环,也会是让C++成为服务器编程有力工具。对C++20的协程,最简单的理解协程是可以重入的特殊函数。就是这个函数在执行的过程,可以(通过co_await,或者co_yield)挂起,然后在外部(通过coroutine_han

  • C++性能真的不如C吗?

    最近在知乎上看了篇帖子,题目是为什么C++没有C语言快,如下图:恰好之前研究过这块,所以借助本文,分析下这个问题(无意于语言之争,单纯是从技术角度😁)。众所周知,C++兼容了C的所有功能,显然从所有角度去对比分析是不现实的,所以本文从我们常用的输入输出即标准流(iostream和stdio)的角度

  • Google 的 C++ 实验性继任者 Carbon 是否值得学习

    自其诞生以来,C++一直是构建性能密集型应用程序的首选。但由于“委员会式设计designbycommittee”,该语言仍有一些过时的做法。2022年7月19日,在多伦多举行的CPPNorthC++会议上,Google工程师ChandlerCarruth介绍了Carbon。我们再来了解什么是Carb

  • 如何把 Node.js 嵌入自己的项目中

    Node.js不仅可以单独运行,还可以以库的方式被使用,本文介绍下如何把Node.js嵌入到自己项目中。首先第一步下载Node.js源码,然后根据Node.js的文档进行编译安装。这样我们就可以拿到Node.js提供的头文件和库文件了。接下来根据官方的demo写一个测试程序。复制#include"n

  • 通过快照加速 Node.js 的启动

    前言:随着Node.js的越来越强大,代码量也变得越来越多,不可避免地拖慢了Node.js的启动速度,针对这个问题,Node.js社区通过V8的snapshot技术对Node.js的启动做了优化,在github有很多关于此的issue讨论,大家有兴趣也可以去看一下。通过快照加速启动是一个非常复杂的过

  • 高端操作:不用继承我也能实现多态

    本文转载自微信公众号「程序喵大人」,作者程序喵。转载本文请联系程序喵大人公众号。大家应该都知道C++17引入了variant,这篇文章我们来研究下它究竟有啥用。本期目录variant是什么?为什么要引入variant?如何确定variant中当前存放的数据类型?variant为什么要搭配monost

  • 使用 CMake 和 VSCodium 设置一个构建系统

    提供一个适当的CMake配置文件来使其他人可以更容易地构建、使用和贡献你的项目。这篇文章是使用开源DevOps工具进行C/C++开发系列文章的一部分。如果你从一开始就把你的项目建立在一个功能强大的工具链上,你的开发会更快和更安全。除此之外,这会使别人更容易地参与你的项目。在这篇文章中,我将搭建一个基

  • 如何更快地将String转换成Int/Long

     你好鸭,Kirito今天又来分享性能优化的骚操作了。在很多追求性能的程序挑战赛中,经常会遇到一个操作:将String转换成Integer/Long。如果你没有开发过高并发的系统,或者没有参加过任何性能挑战赛,可能会有这样的疑问:这有啥好讲究的,Integer.valueOf/Long.v

  • 对象池的使用场景以及自动回收技术

     对象池在编程中,我们经常会涉及到对象的操作,而经常的操作模式如下图所示:创建对象->使用对象->销毁对象。而这个对象有可能创建的时候会需要构建很多资源,消耗比较大,比如:在hiredis的SDK中每次都创建一个redisContext,如果需要查询,那就首先要进行网络连接。如

  • 朋友,这篇笔记看起来怎么样呢?

    前言:这是我3月22日写的线性求解器gecode的笔记。我喜欢gecode的文档,也很喜欢它简洁流畅的C++源码。计划赶不上变化快,当时兴致勃勃的我,真的想不到,3月22日是我这五个月来最后一次写这么工整的笔记;之后我便陷入一场极大的拉锯战中——无暇再打开这个笔记(甚至都给忘了,这几天整理资料才想起

  • Node.js子线程调试和诊断指南

    调试、诊断子线程最直接的方式就是像调试、诊断主线程一样,但是无论是动态开启还是静态开启,子线程都不可避免地需要内置一些相关的非业务代码,本文介绍另外一种对子线程代码无侵入的调试方式,另外也介绍一下通过子线程调试主线程的方式。1.初始化子线程的Inspector在Node.js启动子线程的时候,会初始

  • 在数据科学中使用 C 和 C++

    让我们使用C99和C++11完成常见的数据科学任务。虽然Python和R之类的语言在数据科学中越来越受欢迎,但是C和C++对于高效的数据科学来说是一个不错的选择。在本文中,我们将使用C99和C++11编写一个程序,该程序使用Anscombe的四重奏数据集,下面将对其进行解释。我在一篇涉及Python

  • Simdjson:一个超高速的JSON解析工具

     JSON文档在Internet上无处不在,服务器花费大量时间来解析这些文档。我们希望在进行完全验证(包括字符编码)时尽可能使用常用的SIMD指令来加速JSON本身的解析。表现结果simdjson使用的指令比解析器RapidJSON少四分之三,比sajson少百分之五十。据我们所知,sim

推荐阅读