自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (1)
  • 收藏
  • 关注

原创 模板函数template

模板函数是一种 C++ 特性,它允许你编写能够处理任意类型的函数,而不需要为每个类型重写代码。使用模板函数可以让代码更通用、复用性更高。

2024-09-11 09:34:26 217

原创 线性回归计算polyline

线性回归方程用于描述两个变量之间的线性关系。最常见的线性回归模型是简单线性回归,它用于描述一个自变量 𝑥和一个因变量 𝑦 之间的关系。其方程形式为:其中:• β0 是截距(intercept),表示当 x=0时,y 的值。• β1 是斜率(slope),表示 x 每增加一个单位,y 的变化量。

2024-09-10 10:32:19 370

原创 i++ 和 ++i

i++ 和 ++i 都是用于递增变量 i 的操作符,但它们的行为有一些关键的区别,特别是在表达式中的使用。

2024-09-04 17:29:21 325

原创 array 和 vector

std::array 是 C++11 引入的容器类,是一个定长的数组。大小必须在编译时确定,无法在运行时改变。内存是在栈上分配的,这意味着它的生命周期与它所在的作用域相同。// 定义并初始化一个大小为 5 的数组// 输出:1 2 3 4 5return 0;在这个例子中,arr 是一个包含 5 个整数的固定大小的数组。std::vector 是一个动态数组,可以在运行时增加或减少元素的数量。内存通常在堆上分配。vector 可以自动管理内存,随着元素的添加和删除自动扩展或缩小。

2024-09-04 09:53:22 352

原创 ASSERT

ASSERT 是用于调试的宏或函数,通常用于验证程序在运行时是否符合某些条件。如果条件不满足,程序会触发一个断言失败的错误,通常会中止程序的执行并输出相关的调试信息。

2024-08-30 09:52:19 215

原创 decltype

decltype 是 C++ 中的一个强大的工具,特别适用于模板和泛型编程。它可以精确推导表达式的类型,包括是否为引用类型以及是否具有 const 属性。在需要根据表达式的类型声明变量或函数返回类型时,decltype 是一种非常有用的工具。相比于 auto,decltype 能够保留更多的类型信息,提供更高的类型安全性和代码可读性。

2024-08-23 17:45:14 310

原创 auto关键字

auto 关键字通过自动推导变量类型,使代码更加简洁和易读,尤其是在处理复杂类型时。它的使用可以减少显式类型声明的冗长性,特别是在模板编程和使用标准库容器时非常有用。

2024-08-23 17:28:24 170

原创 lambda表达式

在C++中,lambda表达式是一种轻量级的匿名函数,可以在需要定义短小的、一次性使用的函数时非常方便。

2024-08-22 14:55:56 150

原创 对象切片的用处

虽然对象切片通常被认为是一个问题,但在某些情况下,故意使用对象切片可能是有意的设计选择。这通常是为了简化代码或实现特定的设计模式。

2024-08-13 17:48:30 331

原创 对象切片(Object Slicing)

对象切片问题是C++中将派生类对象按值赋值或传递给基类对象时遇到的一个重要问题。它会导致派生类对象中的特有部分被丢弃,只保留基类部分。为避免切片问题,应尽量使用引用或指针、智能指针,或在必要时使用克隆模式。

2024-08-13 17:37:03 306

原创 union

int i;float f;char c;在上面的例子中,ExampleUnion 具有三个成员:int i、float f 和 char c。这三个成员共享同一块内存,所以在任何时候只能使用其中的一个成员。union 是 C/C++ 中的一种强大的工具,适用于需要在同一块内存中存储多种不同类型的数据的场景。使用时需要特别注意,修改一个成员会影响其他成员的值。

2024-08-09 13:14:42 328

原创 对象类型转换

如果两个类之间没有继承关系,你可以在类中定义转换构造函数或者类型转换操作符。转换构造函数public:// 转换构造函数// 执行转换// 使用转换构造函数return 0;类型转换操作符public:// 类型转换操作符// 使用类型转换操作符return 0;你不能直接将一个构造函数强转为另一个构造函数。但是,你可以通过继承、转换构造函数或者类型转换操作符,将一个类型的对象转换为另一个类型的对象。这取决于你的类设计和实际需求。

2024-08-08 15:47:21 171

原创 std::vector

现代 C++ 提供了标准容器(如 std::vector)来管理动态数组,这样可以避免手动管理内存,提高代码的安全性和可维护性。

2024-08-08 11:04:14 129

原创 this指针

在 C++ 中,this 指针是一个隐含参数,传递给类的非静态成员函数。它指向调用成员函数的对象自身,允许成员函数访问对象的成员变量和其他成员函数。

2024-08-08 10:52:16 302

原创 typedef 和 using

typedef 用于为类型创建别名,简化复杂类型的声明和提高代码可读性。在现代 C++ 中,using 关键字通常被推荐用于创建类型别名,提供了更简洁的语法和更多的功能。这使得代码更加易于理解和维护,特别是当使用复杂类型和模板时。

2024-08-07 16:04:26 269

原创 虚析构函数

当通过基类指针删除对象时,能够正确调用派生类的析构函数。防止资源泄漏和未定义行为。这是面向对象编程中管理资源和多态性的关键机制之一。

2024-08-07 15:55:18 317

原创 静态局部变量和链接类型

内部链接:static 关键字用于全局变量或函数时,表示这些变量或函数只能在声明它们的文件中访问。静态局部变量:在函数内部使用 static 关键字声明的变量在函数多次调用之间保持其值,并且只初始化一次。

2024-08-07 15:11:45 328

原创 enum和 enum class

enum class 和传统的 enum 是 C++ 中用于定义枚举的两种方式。它们在语法和行为上有一些关键的不同点。以下是对这两种枚举类型的详细比较和解释。

2024-08-05 13:57:24 413

原创 前向声明(forward declarations)

include "Fip.h" // 包含 Fip 类的完整定义#include "AbstractFcp.h" // 包含 AbstractFcp 类的完整定义// 可以使用 fipPtr 和 fcpPtr 调用实际的成员函数或访问数据前向声明:用于在类的头文件中减少对其他类完整定义的依赖,只需要告知编译器这些类存在。减少编译时间和依赖:有助于缩短编译时间,避免循环依赖和复杂的代码结构。使用完整定义:在需要实际使用类成员函数或访问类数据时,在实现文件中包含完整的头文件。

2024-08-05 13:39:04 215

原创 protected

保护成员访问:protected 成员可被类本身和其派生类访问,但不能被类外的代码直接访问。继承和封装:使用 protected 可以在继承体系中提供必要的接口,同时保护不需要暴露给外部的实现细节。提高代码的灵活性:允许派生类在不破坏封装的情况下访问和修改基类的内部数据。使用 protected 访问控制修饰符时,要确保设计上的合理性,以避免滥用,使得封装性和接口设计保持一致。

2024-08-05 13:26:48 161

原创 多态性(Polymorphism)

多态性允许使用基类指针或引用来处理不同的派生类对象,通过相同的接口实现不同的行为。虚函数是实现运行时多态性的基础,通过动态绑定决定调用哪个派生类的方法。纯虚函数和抽象类允许定义接口,强制派生类提供具体实现,从而实现灵活和可扩展的设计。

2024-08-05 13:11:43 391

原创 动态多态性

动态多态性使得程序在运行时决定调用哪个函数的实现,而不是在编译时确定。这种机制允许程序设计者在使用基类指针或引用时,操作不同类型的派生类对象,实现灵活的和可扩展的代码。通过虚函数和虚函数表,C++ 实现了这一强大的特性。

2024-08-05 10:50:25 389

原创 构造函数和析构函数

构造函数(Constructor)和析构函数(Destructor)是C++中类的一部分,它们在对象的生命周期中起着重要作用。

2024-08-05 10:19:06 222

原创 引用

引用是为变量提供别名的机制,具有语法简洁、类型安全的特点。引用的使用场景包括函数参数、函数返回值和为复杂表达式或长变量名创建别名。常量引用用于引用常量或保护引用不被修改。引用在 C++ 中是一个非常强大且常用的特性,理解和正确使用引用可以提高代码的效率和可读性。

2024-08-02 13:07:59 127

原创 指针的使用

指针的基本操作包括定义、取地址和解引用。指针与数组 紧密相关,可以使用指针遍历和操作数组。指针作为函数参数 可以修改传入的变量。指针与动态内存分配 允许在运行时分配和释放内存。指针与常量 可以用来创建指向常量的指针或常量指针,增加了代码的安全性和灵活性。指针是C++中非常强大且灵活的工具,掌握指针的用法对写出高效和灵活的代码至关重要。

2024-08-02 10:48:11 277

原创 指针作为函数参数

通过指针传递参数在C++中有许多应用场景和优势,包括修改原始数据、节省内存、动态内存管理等。指针的灵活性使其成为C++编程中的一个强大工具,但也要求程序员谨慎使用,避免出现空指针、悬空指针等问题。理解和掌握指针的用法,对编写高效、安全的C++代码至关重要。

2024-08-02 10:42:13 242

原创 全局变量和静态全局变量

全局变量和静态全局变量在 C++ 中都有各自的用途和特点。下面详细介绍它们的区别和使用场景,并提供示例代码进行对比。

2024-07-26 17:39:34 176

原创 static静态

static 关键字在 C++ 中有多种用途,具体取决于其使用的上下文。以下是 static 在不同上下文中的常见用法:

2024-07-26 17:34:35 304

原创 inline 函数调用机制

inline 是 C++ 关键字,用于提示编译器将函数尽量内联(inline)。内联函数的代码会在每次调用时直接替换到调用点,而不是通过常规的函数调用机制。这可以减少函数调用的开销,尤其是在函数体较小且频繁调用的情况下。

2024-07-26 11:37:03 960

原创 函数签名(Function Signature)

函数签名(Function Signature)是指函数的名称及其参数类型的组合。函数签名用于标识和区分不同的函数。函数签名不包括返回类型,也不包括参数的名字。两个函数如果名称相同且参数类型(及其顺序)相同,那么它们的函数签名是相同的。

2024-07-26 10:54:51 393

原创 nop函数 (no operation)

这是一个模板函数的定义,表示该函数接受一个类型参数ArgumentType。这个类型参数可以是任意类型。inline:这是一个提示编译器将函数内联化。内联化意味着在调用这个函数时,编译器会尝试将函数的代码直接插入到调用点,避免函数调用的开销。:这是函数的声明。函数名为 nop,接受一个 const 引用类型的参数。函数体为空,表示什么也不做。nop 函数模板是一个接收任意类型参数但不进行任何操作的函数。在模板编程和调试过程中,可以使用 nop 函数作为占位符,确保代码在编译期间不会报错。

2024-07-26 10:44:20 321

原创 const 在类中的应用

在 C++ 中,const 关键字在类中的应用非常广泛,它可以用于声明常量数据成员、常量成员函数、常量对象等。下面是 const 在类中的几个常见应用场景及其说明:

2024-07-25 18:10:55 292

原创 const 常规用法

const 关键字在 C++ 中用于表示常量,可以应用于变量、指针、函数参数、成员函数等。使用 const 可以提高代码的可读性和安全性,防止意外修改数据。

2024-07-25 17:18:29 284

原创 explicit 显示构造

在 C++ 中,explicit 关键字用于修饰构造函数,以防止隐式类型转换。使用 explicit 关键字可以提高代码的可读性和安全性,避免意外的类型转换和构造函数调用。以下是使用 explicit 关键字的一些好处及示例:

2024-07-24 17:44:23 912

原创 #ifndef, #define, 和 #endif预处理阶段的包含保护

如果一个头文件被多次包含,可能会导致符号的重复定义错误,尤其是在类、函数或全局变量的定义中。头文件的包含保护是一个简单而有效的技术,用于防止头文件被多次包含引起的重复定义错误。通过使用 #ifndef、#define 和 #endif 指令,可以确保头文件在整个项目中被唯一和高效地处理。

2024-07-24 16:46:24 268

原创 extern 声明全局变量

全局变量通常在头文件中声明,在一个源文件中定义。头文件(globals.h)// 声明全局变量源文件(globals.cpp)// 定义全局变量在 globals.h 中声明了 globalVar 和 maxBufferSize,其中 globalVar 使用 extern关键字,maxBufferSize 是一个 constexpr 常量。在 globals.cpp 中定义并初始化了 globalVar。

2024-07-24 16:27:40 853

原创 contexpr 关键字

constexpr 是 C++11 引入的关键字,用于定义常量表达式(constant expressions)。这些表达式在编译时求值,从而可以提升程序的效率。constexpr 可以用于变量、函数和构造函数。

2024-07-24 15:44:39 826

原创 carsim与simulink联合仿真之主动避撞控制策略实现

carsim与simulink联合仿真之主动避撞控制策略实现之前看过很多关于主动避撞的算法仿真,因此在前人的基础上利用simulink搭建了可变车间时距控制节气门开闭的模型,非常适合初学者学习car与simulink联合仿真。笔者在carsim的学习上也走过很多弯路,非常感谢强大的博主们的指导,所以为了让初学者们更快的掌握联合仿真,笔者特发此篇文章。文中每一步都非常详细,按照步骤来没有太大问题...

2019-10-20 19:20:04 10358 53

carsim与simulink联合仿真之主动避撞控制策略实现的Simulink模型

本资源是《carsim与simulink联合仿真之主动避撞控制策略实现》(CSDN搜索即可)一文中的控制模型,介于大家要求,现统一上传供需要的读者下载,直接用simulink打开即可。

2020-12-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除