一、绪论 1.1 基本概念 加速比:表示加速效果。单个处理器运行花费时间 / P个处理器运行花费时间;(S=frac{T(1)}{T(p)}) 效率:(E = frac{S}{p} = frac{T(1)}{T(p)times p}) 开销:(C=T(p)times p) 可扩展性:处理器数目增多
说明 使用 QCustomPlot 绘图库辅助开发时整理的学习笔记。同系列文章目录可见 《绘图库 QCustomPlot 学习笔记》目录。本篇介绍 QCustomPlot 的一种使用方法,通过包含源码的方式进行使用,这也是最常用的方法,示例中使用的 QCustomPlot 版本为 Version
某日二师兄参加XXX科技公司的C++工程师开发岗位第18面: 面试官:std::string用过吧? 二师兄:当然用过(废话,C++程序员就没有没用过std::string的)。 面试官:std::string("hello")+"world"、"hello"+std::string("worl
描述 给定一个非负整数数组,统计里面每一个数的出现次数。我们只统计到数组里最大的数。 假设 Fmax (Fmax < 10000)是数组里最大的数,那么我们只统计 {0,1,2.....Fmax} 里每个数出现的次数。 输入 第一行n是数组的大小。1 <= n <= 10000。
2023/6/18 本篇章记录学习过程C++的基础概念和代码测试实现,还有很多需要补充。一是还不清楚,二是还没有学到。打算学习过程中后面再做补充。先看完《C++primer 》书之后再慢慢来添加补充 1.函数重载 一个函数名可以实现多个功能,这取决于函数参数不同来实现判断对应的功能,与返回值无
说明 使用 QCustomPlot 绘图库辅助开发时整理的学习笔记。同系列文章目录可见 《绘图库 QCustomPlot 学习笔记》目录。本篇介绍 QCustomPlot 的一种使用方法,通过动态库的方式进行使用,示例中使用的 QCustomPlot 版本为 Version 2.1.1。 目录说明
总结自《Effective Modern C++》第 4 章 裸指针七宗罪 裸指针无法说明指向的是单个对象还是一个数组 裸指针无法说明使用完指针是否需要析构,即从声明中看不出来指针是否拥有所指向的对象 即使知道需要析构,也不知道应该用 delete 还是调用某个类似 deinit(p) 的函数 即
前言 CMake是一个构建工具,通过它可以很容易创建跨平台的项目。通常使用它构建项目要分两步,通过源代码生成工程文件,通过工程文件构建目标产物(可能是动态库,静态库,也可能是可执行程序)。使用CMake的一个主要优势是在多平台或者多人协作的项目中,开发人员可以根据自己的喜好来使选择IDE,不用受其
本篇笔记主要用于记录如何利用C++在虚幻引擎5中实现一些基本的功能需求。 目录实现功能与代码构造函数中添加物体运行时添加C++ Actor运行时设置动态材质及参数蓝图调用C++函数蓝图访问C++成员C++调用用户控件蓝图函数播放wav格式音效 实现功能与代码 以下代码均来自我的跳棋小游戏,所以默认
某日二师兄参加XXX科技公司的C++工程师开发岗位第17面: 面试官:聊一聊指针? 二师兄:好的。 面试官:你觉得指针本质上是什么? 二师兄:这要从内存地址开始说起了。如果有一块容量是1G的内存,假设它的地址是从0x00000000 到0x3fffffff,每一个字节都对应一个地址。当我们声明一
C++ 里面有一些惯用法(idioms),如 RAII,PIMPL,copy-swap、CRTP、SFINAE 等。今天要说的是 PIMPL,即 Pointer To Implementation,指向实现的指针。 问题描述 在实际的项目中,经常需要定义和第三方/供应商的 C++ 接口。假如有这样
某日二师兄参加XXX科技公司的C++工程师开发岗位第16面: 面试官:什么是左值,什么是右值? 二师兄:简单来说,左值就是可以使用&符号取地址的值,而右值一般不可以使用&符号取地址。 int a = 42; //a是左值,可以&a int* p = &a; in
导航 火线告警,CPU飚了 版本回退,迅速救火 猜测:分布式锁是罪魁祸首 代码重构,星夜上线 防患未然,功能可开关 高度戒备,应对早高峰 实时调整方案,稳了 结语 参考 本文首发于智客工坊-《记一次加锁导致ECS服务器CPU飙高分析》,感谢您的阅读,预计阅读时长3min。 每一次版本的上线都应该
其他章节请看: 前端学习 数据结构与算法 快速入门 系列 递归 递归的概念 递归是一种解决问题的方法,它从解决问题的各个小部分开始,直到解决最初的大问题。 递归通常涉及调用函数本身,直接调用自身,亦或者间接调用自身,都是递归函数。就像这样: // 直接调用自身 function fn1(){
其他章节请看: 前端学习 数据结构与算法 快速入门 系列 链表 链表数据结构 前面我们已经学习了数组数据结构,但是从数组头部或中间插入元素,或者移除元素的成本比较高,因为需要移动元素。 就像这样: // 从头部插入元素 Array.prototype.insertFirst = functio
其他章节请看: 前端学习 数据结构与算法 快速入门 系列 队列和双端队列 前面我们已经学习了栈数据结构。队列和栈非常类似,栈的原则是先进后出,而队列则是先进先出。同时,我们要学习双端队列,它是一种允许我们同时从前端和后端添加元素和移除元素的特殊队列。 队列数据结构 队列遵循先进先出(FIFO,
其他章节请看: 前端学习 数据结构与算法 快速入门 系列 栈 前面,我们学习了如何创建和使用计算机科学中最常用的数据结构——数组。 我们知道可以在数组的任意位置添加或删除元素,但有时我们还需要一种能在添加和删除元素时有更多控制的数据结构。有两种类似数组的数据结构在添加和删除时有更多控制,它们就
其他章节请看: 前端学习 数据结构与算法 快速入门 系列 数组数据结构 数组是最简单的数据结构。 几乎所有编程语言都原始支持数组。 数组存储一系列同一种数据类型的值。虽然 javascript 中的数组能保存不同类型的值,但我们还是遵循最佳实践,因为大多数语言都没这个能力。 注:本篇文章不会介

推荐文章