逆风路途
码龄5年
关注
提问 私信
  • 博客:234,275
    社区:1,509
    动态:22
    235,806
    总访问量
  • 88
    原创
  • 177,798
    排名
  • 2,188
    粉丝
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2019-10-21
博客简介:

qq_45780653的博客

查看详细资料
  • 原力等级
    当前等级
    4
    当前总分
    835
    当月
    6
个人成就
  • 获得236次点赞
  • 内容获得24次评论
  • 获得915次收藏
  • 代码片获得364次分享
创作历程
  • 9篇
    2024年
  • 42篇
    2023年
  • 1篇
    2022年
  • 39篇
    2020年
成就勋章
TA的专栏
  • C++
    42篇
  • 自动驾驶
    5篇
  • 高效编程
  • 杂项
    4篇
  • 视觉
    31篇
  • 计算机
    1篇
  • MFC
    6篇
兴趣领域 设置
  • 编程语言
    c++c语言
  • 后端
    架构中间件
  • 人工智能
    自动驾驶
  • 网络与通信
    udptcpdumptcp/ip
  • 操作系统
    linuxubuntuwindowsmacos
  • 设计模式
    单例模式开闭原则命令模式观察者模式访问者模式简单工厂模式里氏替换原则依赖倒置原则单一职责原则接口隔离原则迪米特法则合成复用原则原型模式工厂方法模式抽象工厂模式建造者模式适配器模式装饰器模式外观模式组合模式模板方法模式设计模式
  • 软件工程
    设计模式
  • 学习和成长
    蓝桥杯leetcode
  • 前沿技术
    无人机车载系统
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

explicit

explicit是C++中用于修饰类的构造函数的一个关键字,一般用于修饰只有一个参数类的构造函数。它的作用是防止隐式转换发生,使得只有显式调用才能进行类对象的转换。当声明了一个使用了explicit关键字的构造函数时,编译器将不再支持隐式转换,需要使用强制类型转换或者显式地调用构造函数来完成转换。跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式)。
原创
发布博客 2024.05.05 ·
450 阅读 ·
5 点赞 ·
0 评论 ·
5 收藏

C++11中的std::function和std::bind

C++语言中有几种:函数、函数指针、lambda 表达式、bind 创建的对象以及重载了函数调用运算符的类。和其他对象一样,也有类型。两个不同类型的可调用对象可能共享同一种调用形式指明了调用返回的类型以及传递给调用的实参类型。一种调用形式对应一个函数类型,例如:int (int, int) 是一个函数类型,它接受两个int,返回一个int。C++中虽然都有一个比较统一的操作形式,但是定义方法五花八门,这样就导致使用统一的方式保存可调用对象或者传递可调用对象时,会十分繁琐。
原创
发布博客 2024.04.26 ·
941 阅读 ·
17 点赞 ·
0 评论 ·
29 收藏

c++11 call_once 和 once_flag

std::call_once 和 std::once_flag 是 C++11 中引入的线程安全的函数和类型,用于确保某个函数只被调用一次。使用std::call_once时,需要先创建一个std::once_flag对象,并将其作为参数传递给std::call_once函数。当多个线程同时调用std::call_once时,只有一个线程会执行func函数,其他线程会被阻塞,直到func函数执行完毕。
原创
发布博客 2024.04.26 ·
1111 阅读 ·
20 点赞 ·
2 评论 ·
11 收藏

C++Lambda表达式介绍

C11中引入了Lambda表达式,Lambda表达式是一种匿名函数,它可以在需要函数的地方直接定义和使用,而无需显式地定义一个函数。
原创
发布博客 2024.02.26 ·
865 阅读 ·
22 点赞 ·
0 评论 ·
10 收藏

C++多线程同步之条件变量(condition_variable)

在C++11中,使用条件变量(condition_variable)可以实现多个线程间的同步操作;当条件不满足时,相关线程被一直阻塞,直到某种条件出现,这些线程才会被唤醒。条件变量用于阻塞一个或多个线程,直到某个线程修改线程间的共享变量,并通过condition_variable通知其余阻塞线程。从而使得已阻塞的线程可以继续处理后续的操作。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:1、一个线程因等待"条件变量的条件成立"而挂起;
原创
发布博客 2024.02.26 ·
1136 阅读 ·
30 点赞 ·
0 评论 ·
13 收藏

Git远程仓库打标签

删除远程分支上的tag。例如:git push origin :refs/tags/dev-v1.1.11。如果需要删除本地仓库上的标签,可以使用命令git tag -d。例如,可以使用以下命令删除一个轻量标签:$ git tag -d v1.4-lw。git tag -a 标签名称 -m “标签说明”。例如:git tag -a dev-v1.1.11 -m “dev分支代码版本存储”。例如:git push origin dev-v1.1.11。例如:git tag -d dev-v1.1.11。
原创
发布博客 2024.02.04 ·
454 阅读 ·
6 点赞 ·
0 评论 ·
0 收藏

Git 打patch

未执行git add 打patch可以使用执行git add 打patch可以使用指定某个文件的修改打patch可以使用git diff 文件名 > test.patch对已经提交的代码打patchgit log 查看那些是需要打ptach的(commit_id1是最后1次id commit_id2 是倒数第几个次提交的id)
原创
发布博客 2024.02.04 ·
706 阅读 ·
3 点赞 ·
0 评论 ·
2 收藏

C++字符串通配符匹配

给定一个字符串 (s) 和一个字符模式 §,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。’ 可以匹配任何单个字符;‘*’ 可以匹配任意字符串;
原创
发布博客 2024.02.04 ·
538 阅读 ·
3 点赞 ·
0 评论 ·
2 收藏

控制程序启停脚本

控制进程 启动、 停止 的shell脚本。
原创
发布博客 2024.02.04 ·
322 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

自动驾驶名词解释

国家标准全文公开系统:https://openstd.samr.gov.cn/bzgk/gb/index。GB/T 39263-2020:道路车辆 先进驾驶辅助系统(ADAS) 术语及定义。
原创
发布博客 2023.08.07 ·
1215 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

消息队列介绍

C++中的消息队列是一种数据结构或容器,用于在多个线程之间进行异步通信和数据传输。它基于先进先出(FIFO)的原则,即最先发送的消息最先被接收和处理。
原创
发布博客 2023.08.06 ·
276 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++动态加载 插件

动态加载(Dynamic Loading)是指在程序运行时,根据需要动态地加载和链接代码或资源。动态加载的主要目的是实现程序的灵活性和可扩展性,以及减少内存消耗和启动时间。通过动态加载,程序可以根据运行时的需求加载特定的模块、库或插件,而不需要将所有代码和资源都打包在一起。这样可以实现模块化设计,减少程序的体积,以及在需要时进行动态升级和扩展。在C++中,常见的动态加载方式是使用动态链接库(Dynamic Link Library,DLL)或共享对象(Shared Object,SO)文件。
原创
发布博客 2023.08.06 ·
972 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

C++友元函数,友元类

友元函数是在C++中用来访问另一个类的私有成员的一种机制。通过将函数声明为友元函数,可以使该函数能够访问类中的私有成员,即使它不是类的成员函数或者成员。
原创
发布博客 2023.08.06 ·
1179 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

C++符号导出问题

在Windows下生成DLL时,可以使用dll_export来将需要对外的符号导出来。__declspec在Linux中,默认是所有的符号都是导出的,只有使用了相应的attribute才能将不想导出的(库内部使用的)的符号隐藏起来。visibilityDLLEXPORT是一个宏定义,通常用于C/C++语言中的动态链接库(DLL)的开发。DLLEXPORT的作用是在编译动态库时,将函数或变量标记为可导出,以便其他程序可以调用这些函数或变量。
原创
发布博客 2023.08.06 ·
889 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

分布式通信:发布订阅介绍

消息的发送者称为发布者(Publisher),消息的接收者称为订阅者(Subscriber);发布订阅(Publish-Subscribe)是一种常用的分布式通信模式;它基于消息传递实现了解耦和异步通信。在发布订阅模式中,发布者和订阅者之间并不直接进行通信,而是通过消息代理进行交互。消息的生产者(发布者)将消息发送到一个中心地点,称为消息代理(Message Broker),而消费者(订阅者)则从消息代理订阅感兴趣的消息类型。
原创
发布博客 2023.08.06 ·
1007 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

C++菱形继承

菱形继承:指有一个基类被两个不同的类所继承,且存在一个类继承于这两个类而形成的一种菱形关系,故称菱形继承。
原创
发布博客 2023.07.10 ·
564 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

C++协变(covariant)

C++中,协变(covariant)是指派生类(子类)中的返回类型可以是基类(父类)中返回类型的子类型。换句话说,如果一个虚函数在基类中返回的是基类类型的指针或引用,那么派生类可以重写该虚函数并返回基类类型的子类类型的指针或引用。协变在C++中是通过使用返回类型协变(return type covariance)来实现的。返回类型协变是指派生类中重写的虚函数可以具有比基类更具体的返回类型。这种协变的能力使得在使用多态时更加灵活,可以根据具体的派生类返回不同的子类型,而不需要进行显式的类型转换。
原创
发布博客 2023.07.09 ·
1866 阅读 ·
3 点赞 ·
1 评论 ·
15 收藏

联合体和位域的结合

总的来说,联合体和位域的结合使用可以在某些场景下提供更高效和灵活的内存管理方式。然而,需要注意跨平台兼容性、可读性和可维护性,以及位域的范围限制。位域成员变量的类型必须是整型(signed或unsigned)或枚举类型。位域是一种用于在一个字节或更小的空间中存储多个标志位或数据的机制。位域使用冒号 : 来声明成员变量所占用的位数。
原创
发布博客 2023.07.09 ·
729 阅读 ·
1 点赞 ·
0 评论 ·
8 收藏

STL常用算法

stable_sort与sort的用法类似,也可以对容器中的元素进行排序,但它保证了相等元素的相对顺序不会发生改变。partial_sort可以对容器中的元素进行部分排序,即只将前k个最小(或最大)的元素放在容器的前k个位置上。sort是STL中最常用的排序算法,它可以对容器中的元素进行排序。在已排序的容器中查找第一个大于或等于指定元素的位置,并返回迭代器。如果找到了指定元素,则返回指向该元素的迭代器,否则返回指向容器末尾的迭代器。在已排序的容器中查找指定元素的范围,并返回一对迭代器。
原创
发布博客 2023.06.02 ·
459 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

AUTOSAR架构介绍

I/O硬件抽象模块抽取外设I/O设备(芯片或面板)的位置和ECU硬件分层(μC管脚连接和信号转变)。I/O硬件抽象并不提取传感器/执行器。通过I/O信令接口访问不同的I/O设备。功能如下:・I/O信令与ECU硬件的连接(电流、电压、频率);・为较高的软件层隐藏ECU硬件和布局特性通信硬件抽象层抽取通信控制器的位置和ECU硬件布局。对所有通信系统必须有一个指明的通信硬件抽象(LIN、CAN、MOST、FlexRay)。
原创
发布博客 2023.06.02 ·
2369 阅读 ·
4 点赞 ·
0 评论 ·
10 收藏
加载更多