跳至主要內容
老生常谈:printf真的比std::cout快吗?

实验结果

实践是检验真理的唯一标准。

在程序设计竞赛等情况下,我们常常需要通过标准输入输出流交换大量的数据。然而,在传统OI培训当中,我们常常会接受到这样一个观点

要用printf,std::cout会太慢导致超时

笔者在wsl2环境下,利用谷歌开源的Google Benchmark框架进行了一次测试,被测试的函数包括:

  • 默认情况下的std::cout,且使用std::endl进行换行
  • 默认情况下的std::cout,使用\n作为换行
  • 关闭标准流同步,使用\n作为换行的std::cout
  • 关闭标准流同步,但使用std::endl作为换行的std::cout
  • 传统香烟printf
  • 笔者自行实现的所谓OI快写

A1exlindev大约 2 分钟计算机
得捷FollowMe第二期速通记录 - ESP32S3-Feather-TFT入门
成品图
成品图

任务 1 | 控制屏幕显示中文

要在板子上显示中文和其他自定义的字体,就需要往板子上上传对应的点阵字体,并利用相应的库来支持字体渲染。所幸Adafruit已经提供了现成的字体库,我们只需要安装相应的adafruit_bitmap_font库即可。

由于板子的存储空间受限,存储完整英文字体尚可,但存储完整中文字体则不太现实。我们需要先在电脑上制作字体的子集,随后转换成点阵字体上传到板子上。


A1exlindev大约 4 分钟计算机
基于 MobileNetV2 的端侧水果分类

项目背景

在超市购买蔬菜水果等农产品时,往往需要称重计价。而传统的计价的过程往往需要人工介入,识别商品的类型并输入到机器中。目前,已有通过图像识别商品类型的产品,能够自动识别商品类型并选中单价,称重员确认后即可完成计价过程。

项目将会在嵌入式设备上部署一个能够执行图像分类任务的神经网络,并配合一些相应的外围软件组件来构成一个完整的应用系统。

项目架构和设备选型


A1exlindev大约 6 分钟计算机
时间序列预测简介 - 分析过去,预测未来

什么是时间序列分析

时间序列,顾名思义,就是在时间轴上的一系列数据点。所谓时间序列预测,就是利用统计学模型,通过历史数据预报未来数据点的过程。

数据点显然有两个要素,分别是时间要素和数值要素。

若数值累加后仍有意义,则称数据系列是时期序列,否则称时点序列。

时间序列分析在商业,科学等多个领域有重要的实际作用。

时间序列数据的不同组分

时间序列分析在分析有一定规律的数据时才有较好的效果。而现实生活中的很多指标往往都有明确的规律,比如,游乐园的游客人数往往和节假日相关。

传统理论中,时间序列数值变化有以下四个组分


A1exlindev大约 4 分钟计算机