上位机图像处理和嵌入式模块部署(树莓派4b和c++新版本的问题)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        自己读书的时候是03年,学习c++也是差不多04年开始,到现在基本上20年了。这20年过程当中,其实c++的语言版本一直是在迭代当中的。早期的c++迭代还比较慢,但是11年之后,可能是与时俱进的需要,c++引入了很多其他语言的特性。对于这些新特性,使用上面一般自己还是比较偏保守的。但是,至少对coder来说,能够看懂别人的代码还是很重要的。

        这一段时间学习树莓派4b,安装和移植了不少软件,也开始对c++新版本有了一些体会和认识。这里正好总结一下。

1、添加了新的头文件

        编译过程中,发现新版本的c++,添加了好多不认识的头文件,比如说#include <filesystem>。一开始的时候,编译提示找不到,后来才知道,新版本的c++才有这个头文件。遇到这种情况,要么自己重写一下函数,要么update一下gcc的版本。

2、lamda函数

        之前lamda函数只是在其他语言中看到过,比如python、javascript等等。现在c++也有了自己的lamda函数,大家把它看成是函数指针就可以了。

auto compare = [](int a, int b) ->int {return a > b ? a : b;};
int result = compare(1,2);

3、auto变量的使用

        有的时候,不确定变量的类型,直接用auto代替了。看似是一个一劳永逸的做法。

4、循环的修改

        之前的c++循环,和c语言差不多,一般都是for、while和do while。现在c++的循环改了一下,添加了一种冒号的形式。

int data[] = { 1,2,3,4,5 };
for (auto val : data)
{std::cout << val << std::endl;
}

5、类里面模板的声明

        新式的c++语法,特别是类里面的定义,猛一看上去,还以为有语法错误,其实也是一种新添加的声明格式。

class demo
{
public:demo() {}~demo() {}template<typename t>t compare(t a, t b){return a > b ? a : b;}
};void process()
{demo d;auto result = d.template compare<int>(2, 1);std::cout << result << std::endl;
}

        这段示例代码里面,最神奇的就是这个d.template,一开始看的时候都以为是代码bug呢。

6、缺省模板

        缺省模板其实老早就有,只不过平时看得少。真的见多了,才知道是什么含义,

template <typename T>T compare(T a, T b)
{return a > b ? a : b;
}template <>
int compare(int a, int b)
{if (a == 0 || b == 0){assert(0);}return -1;
}

7、直接用stl创建多线程

        之前我们不管是windows,还是linux,创建多线程的时候,都是用的os api函数。不过最新的c++标准里面,对应的stl已经可以支持多线程编写了。

#include <iostream>
#include <vector>
#include <thread>void threadFunction(int threadID) 
{std::cout << "Thread " << threadID << " is executing." << std::endl;
}int demo() 
{std::vector<std::thread> threads;for (int i = 0; i < 5; ++i) {threads.push_back(std::thread(threadFunction, i)); }for (auto& thread : threads) {thread.join();}std::cout << "All threads have finished execution." << std::endl;return 0;
}

8、namespace的嵌套

        还有一个印象比较深刻的内容,就是namespace的嵌套,比如像这样,这是之前没有看到过的,居然也可以编译通过,

namespace A::B::C
{
};

总结:

        实际遇到的c++新特性还是蛮多的,大部分都能猜到它的意思是什么。是在理解不了的,一般也是通过搜索引擎,或者chatgpt review一下,看看是怎么一个情况。平时看到的时候,注意积累一下,没必要专门去学。至少保证自己可以学会、看懂,这就已经很好了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/9049.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【stomp 实战】spring websocket 接收消息源码分析

后台消息的发送过程&#xff0c;我们通过spring websocket用户消息发送源码分析已经了解了。我们再来分析一下后端接收消息的过程。这个过程和后端发送消息过程有点类似。 前端发送消息 前端发送消息给服务端的示例如下&#xff1a; 发送给目的/app/echo一个消息。 //主动发…

科林算法_3 图

一、图论基础 多对多的关系 定义&#xff1a;G(V,E) Vertex顶点 Edge边 顶点的集合V{v1,v2} 边的结合E{(v1,v2)} 无向图(1,2) 有向图<1,2> 依附&#xff1a;边(v1,v2)依附于顶点v1,v2 路径&#xff1a;&#xff08;v1,v2)(v2,v3) 无权路径最短&#xff1a;边最少…

程序员不会告诉老板的那些神器

目录 1. 持续集成工具&#xff1a;CruiseControl&#xff08;简称CC&#xff09; 2. 代码风格、质量检查工具&#xff1a;StyleCop 3.AI工具 3.1 AI助力编写开发日报 3.2 AI助力编写普适性代码 3.3 AI助力生成代码注释 3.4 AI助力重构代码去掉“坏味道” 3.5 AI助力…

【小白的大模型之路】基础篇:Transformer细节

基础篇&#xff1a;Transformer 引言模型基础架构原论文架构图EmbeddingPostional EncodingMulti-Head AttentionLayerNormEncoderDecoder其他 引言 此文作者本身对transformer有一些基础的了解,此处主要用于记录一些关于transformer模型的细节部分用于进一步理解其具体的实现机…

渗透之sql注入---宽字节注入

目录 宽字节注入原理&#xff1a; 实战&#xff1a; 源码分析&#xff1a; 开始注入&#xff1a; 找注入点&#xff1a; 注入数据库名&#xff1a; 注入表名&#xff1a; 注入列明&#xff1a; 注入具体值&#xff1a;http://sqli-labs:8084/less-32/?id-1%df%27unio…

luceda ipkiss教程 66:金属线的钝角转弯

案例分享&#xff1a;金属线的135度转弯&#xff1a; 所有代码如下&#xff1a; from si_fab import all as pdk import ipkiss3.all as i3 from ipkiss.geometry.shape_modifier import __ShapeModifierAutoOpenClosed__ from numpy import sqrtclass ShapeManhattanStub(__…

《ESP8266通信指南》11-Lua开发环境配置

往期 《ESP8266通信指南》10-MQTT通信&#xff08;Arduino开发&#xff09;-CSDN博客 《ESP8266通信指南》9-TCP通信&#xff08;Arudino开发&#xff09;-CSDN博客 《ESP8266通信指南》8-连接WIFI&#xff08;Arduino开发&#xff09;&#xff08;非常简单&#xff09;-CSD…

短信公司_供应群发短信公司

短信公司——供应群发短信公司 短信公司作为一种为企业提供群发短信服务的服务商&#xff0c;正逐渐受到市场的青睐。供应群发短信公司作为其中的一种类型&#xff0c;为各行各业的企业提供高效、便捷的短信推广渠道。本文将介绍短信公司的作用以及供应群发短信公司的特点和优势…

Django之创建Model以及后台管理

一&#xff0c;创建项目App python manage.py startapp App 二&#xff0c;在App.models.py中创建类&#xff0c;以下是示例 class UserModel(models.Model):uid models.AutoField(primary_keyTrue, auto_createdTrue)name models.CharField(max_length10, uniqueTrue, db…

ICode国际青少年编程竞赛- Python-2级训练场-坐标与列表练习

ICode国际青少年编程竞赛- Python-2级训练场-坐标与列表练习 1、 for i in range(6):Spaceship.step(Item[i].x - Spaceship.x)Dev.step(Item[i].y - Dev.y)Dev.step(Spaceship.y - Dev.y)2、 for i in range(5):Spaceship.step(Item[i].x - Spaceship.x)Flyer[i].step(Item[…

车载测试___面试题和答案归纳

车载面试题 一、实车还在设计开发阶段&#xff0c;大部分测试通过什么测试&#xff1f; 答案&#xff1a;通过台架和仿真来完成的 二、测试部分划分&#xff1f; 测试部门是分为自研&#xff0c;系统&#xff0c;验收&#xff0c;自研部门是开发阶段测试&#xff0c;系统部门…

重发被恶意举报的主食冻干测评,速看可能再被删!PR、希喂和SC真实对比PK!

要给猫咪提供高品质主食&#xff0c;主食冻干是不二之选。主食冻干不仅含肉量高、吸收消化率高&#xff0c;还有着丰富的、普通猫粮无法提供的各类营养素&#xff0c;满足猫咪微量元素的需求。可以说是营养与生骨肉喂养媲美&#xff0c;又能完美避开生骨肉细菌超标带来的一系列…

如何优雅的实现接口限流?

首先限流&#xff0c;其实解决方案有很多&#xff0c;比如通过nginx配置&#xff0c;通过gateway网关进行限流&#xff0c;比如Spring Cloud GateWay整合熔断器实现限流 但是以上都是全局的&#xff0c;如何灵活的针对某些接口进行不同级别的限流呢&#xff1f; 方案一&#…

超标量处理器设计:重排序缓存(ROB)

★超标量处理器的很多地方用到了重排序缓存&#xff0c;但是我对它不是很了解&#xff0c;所以我整理一下重排序缓存的知识点。 重排序缓存(ROB)在确保乱序执行的指令能够正确地完成和提交(Commit)&#xff0c;也可以用来寄存器重命名。 ROB是一个先进先出的表&#xff0c;每个…

Re_Lasso

from sklearn.linear_model import LassoCV, Lasso import pandas as pd from sklearn.model_selection import train_test_split from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score from sklearn.model_selection import GridSearchCV# 读取数据…

【备战软考(嵌入式系统设计师)】10 - 软件工程基础

这一部分的内容是概念比较多&#xff0c;不要理解&#xff0c;去感受。 涉及的知识点是嵌入式系统开发和维护的部分&#xff0c;也就是和管理相关的&#xff0c;而不是具体如何进行嵌入式系统开发的细节。 系统开发生命周期 按照顺序有下面几个阶段&#xff0c;我们主要要记…

12 华三的二层链路聚合

12 华三的二层链路聚合 配置思路 1. 配置二层静态聚合组 (1) 进入系统视图。 system-view (2) 创建二层聚合接口&#xff0c;并进入二层聚合接口视图。 interface bridge-aggregation interface-number [ lite ] 创建二层聚合接口后&#xff0c;系统将自动生成…

代码随想录算法训练营DAY46|C++动态规划Part8|139.单词拆分、多重背包理论基础、背包问题总结篇

文章目录 139.单词拆分思路CPP代码 多重背包理论基础处理输入把所有个数大于1的物品展开成1个开始迭代&#xff0c;计算dp数组代码优化 背包问题总结篇 139.单词拆分 力扣题目链接 文章讲解&#xff1a;139.单词拆分 视频讲解&#xff1a;你的背包如何装满&#xff1f;| LeetCo…

计算方法实验9:Romberg积分求解速度、位移

任务 输出质点的轨迹 ( x ( t ) , y ( t ) ) , t ∈ { 0.1 , 0.2 , 0.3 , . . . , 10 } (x(t), y(t)), t\in \{0.1, 0.2, 0.3, ..., 10\} (x(t),y(t)),t∈{0.1,0.2,0.3,...,10}&#xff0c;并在二维平面中画出该轨迹.请比较M分别取4, 8, 12, 16, 20 时&#xff0c;Romberg积分达…

蓝桥杯省三爆改省二,省一到底做错了什么?

到底怎么个事 这届蓝桥杯选的软件测试赛道&#xff0c;都说选择大于努力,软件测试一不卷二不难。省赛结束&#xff0c;自己就感觉稳啦&#xff0c;全部都稳啦。没想到一出结果&#xff0c;省三&#xff0c;g了。说落差&#xff0c;是真的有一点&#xff0c;就感觉和自己预期的…