• 博客(454)
  • 收藏
  • 关注

原创 【C++练习】28.比较两个字符串是否相等

在C++中,除了C语言标准的 “strcmp” 函数,你还有多种方法可以比较两个字符串是否相等,特别是当你使用 “std::string” 类时,操作会更加简便直观。C++的 “std::string” 类重载了 “==” 运算符。这是比较两个 “std::string” 字符串最推荐的方式,因为它和比较基本数据类型(如 “int”)一样简单直观。“compare()” 函数提供了更详细的比较信息,不仅限于判断是否相等。“char*”)且不能使用 “strcmp”,可以手动实现比较逻辑。

2025-09-25 17:41:10 794

原创 【C++练习】27.在C++中连接字符串而不使用“strcat“函数

性能关键场景:在需要循环拼接大量字符串时,使用 “reserve()” 函数预先为 “std::string” 分配足够的空间,可以避免反复重新分配内存,从而大幅提升 “+=” 或 “append()” 的效率。直接对两个C风格字符串字面量(如 ““Hello” + “World””)使用 “+” 是错误的。需要注意的是,“stringstream” 的性能通常不如直接使用 “std::string” 的运算符或成员函数,因此更适用于调试、日志记录等对性能不敏感的格式化输出场景。

2025-09-25 17:15:06 1034

原创 【C++练习】26.在 C++ 中,不使用 “strcpy“ 函数将一个字符串复制到另一个字符串

在 C++ 中,不使用 “strcpy” 函数将一个字符串复制到另一个字符串有多种方法,主要可分为使用 C 风格字符数组 和 C++ “std::string” 类 两大方向。

2025-09-21 15:26:52 490

原创 【C++练习】25.在不使用标准库函数 “strlen“ 的情况下,C++ 中计算字符串长度

方法优点缺点适用场景计数器循环直观易懂,效率高需要维护一个计数器变量一般场景,最常用指针算术代码相对简洁,效率高需要理解指针运算追求代码简洁和效率的场景递归代码形式简洁,不创建局部变量计数器递归开销大,可能栈溢出,性能较差对代码简洁性有要求且字符串长度可控的场景这些方法本质上都是遍历字符串直到遇到空字符“’\0’”,时间复杂度都是 O(n),其中 n 是字符串的长度。对于 C++ “std::string” 对象,不应使用上述方法。

2025-09-21 15:13:25 646

原创 【C++练习】24.在 C++ 中判断一个数是否在数组中

方法适用场景优点缺点时间复杂度基础循环简单场景,小数组,C风格数组实现简单,控制力强代码稍显冗长O(n)通用场景,尤其是"std::vector"等STL容器代码简洁,标准库实现需要理解迭代器O(n)只需判断是否存在,代码可读性优先语义明确无法直接获取位置O(n)数组已排序效率极高要求数据必须先排序O(log n)哈希表 (“std::unordered_set”)频繁查找,数据不重复平均效率最高需要额外内存,不保持顺序平均O(1)

2025-09-19 08:08:19 751

原创 【C++练习】23.冒泡排序

特性/方法基础实现优化实现 (提前终止)模板化实现核心思想两层循环遍历比较增加交换标志位,若某轮无交换则提前终止使用模板,支持多种数据类型时间复杂度(平均)O(n²)O(n²),但对已有序序列最优情况为O(n)O(n²),最优情况O(n)空间复杂度O(1)(原地排序) O(1)O(1)稳定性稳定 (相等元素不改变相对顺序)稳定稳定适用场景教学理解小规模数据或可能部分有序的数据需要排序多种基本数据类型的小规模数据集。

2025-09-19 07:50:37 632

原创 【C++练习】22.C++中,查找数组中的最大值和最小值

将数组分成两部分,分别查找每部分的最大值和最小值,然后比较两部分的结果,得到整个数组的最大值和最小值。在C++中,查找数组中的最大值和最小值有多种方法。:通过循环遍历数组,逐个比较数组中的每个元素,更新最大值和最小值。这些方法各有优缺点,可以根据具体需求和场景选择合适的方法。:通过递归函数逐个比较数组中的元素,更新最大值和最小值。:使用 C++11 的 Lambda 表达式结合。函数来查找数组中的最小值和最大值。:使用 STL 容器(如。)来查找最大值和最小值。来查找最大值和最小值。

2025-09-15 16:23:42 556

原创 【C++练习】21.C++中,计算数组元素的平均值

通过循环遍历数组,将所有元素累加到一个变量中,然后将累加结果除以数组的长度,得到平均值。:使用指针来遍历数组,将数组的每个元素累加到一个变量中,然后计算平均值。这些方法各有优缺点,可以根据具体需求和场景选择合适的方法。:使用 C++11 的 Lambda 表达式结合。函数来计算数组元素的总和,然后除以数组的长度。)来遍历数组,累加元素值,然后计算平均值。:使用 C++11 的范围循环(来计算总和,然后计算平均值。:使用 STL 容器(如。

2025-09-15 16:21:14 669

原创 【C++练习】20.模拟掷骰子的核心是生成1到6之间的随机整数

rand()函数:简单易用,但随机性较差。<random>库:提供高质量的随机数生成器,适合需要高质量随机数的场景。和:适合需要随机打乱顺序的场景。:适合模拟非均匀分布的情况。:适合随机选择一个或。

2025-09-14 14:00:10 1093

原创 【C++练习】19.判断一个字符是元音还是辅音

通过if-else语句逐一判断字符是否为元音字母(a、e、i、o、u),如果不是元音且为字母,则为辅音。以上是几种常见的判断字符是元音还是辅音的方法,你可以根据具体需求选择合适的方法。语句逐一判断字符是否为元音字母,如果不是元音且为字母,则为辅音。:将元音字母存储在数组中,通过遍历数组判断字符是否为元音。:将判断逻辑封装到一个函数中,使代码更加模块化和可重用。:将元音字母存储在字符串中,通过字符串的。方法判断字符是否为元音。

2025-09-14 13:56:23 718

原创 【C++练习】18.C++求两个整数的最小公倍数(LCM)

最小公倍数(LCM)是指能够同时被两个数整除的最小的正整数。在C++中,有几种常见的方法可以计算两个整数的最小公倍数。这种方法通过逐个测试较大的数的倍数,直到找到能被两个数都整除的数。这种方法是最推荐的,因为它高效、简洁且能处理各种边界情况。将两个数分解质因数,然后取每个质因数的最高幂次相乘。

2025-09-13 16:37:10 515

原创 【C++练习】17.C++求两个整数的最大公约数(GCD)

在C++中,计算两个整数的最大公约数(GCD)有多种方法,下面我将介绍几种常见的方法及其实现。gcd(a, b) = gcd(a-b, b) (当a > b时)在实际应用中,推荐使用欧几里得算法(辗转相除法)或C++17的。"std::gcd"函数,因为它们既高效又简洁。

2025-09-13 16:33:05 585

原创 【C++练习】16.C++将一个十进制转换为二进制

以上是C++中将十进制数转换为二进制数的几种常见方法。每种方法都有其适用场景和优缺点。在实际开发中,可以根据具体需求选择合适的方法。在C++中,将一个十进制数转换为二进制数有多种方法。:通过不断地将十进制数除以2,取余数,然后将余数逆序排列,得到二进制表示。:通过递归的方式,将十进制数除以2,取余数,然后对商继续递归,直到商为0。方法可以直接将十进制数转换为二进制字符串,而不需要指定大小。类,可以方便地将十进制数转换为二进制表示。:通过位运算,逐位提取二进制表示。:C++标准库提供了。

2025-09-12 11:57:19 598

原创 【C++练习】15.在C++中,反转字符串有

通过两个指针,一个指向字符串的开头,另一个指向字符串的结尾,然后交换这两个指针所指向的字符,逐步向中间移动,直到两个指针相遇。以上是C++中反转字符串的几种常见方法,每种方法都有其适用场景和优缺点。:通过递归的方式,将字符串的最后一个字符移到前面,然后对剩余的字符串继续递归反转,直到字符串为空。:利用栈的后进先出(LIFO)特性,将字符串中的字符依次压入栈中,然后再依次弹出,从而实现反转。函数,可以直接反转容器中的元素。:通过手动交换字符串中的字符来实现反转,这种方法与双指针方法类似,但不使用。

2025-09-12 11:52:32 552

原创 【C++练习】14.C++统计字符串中字母、数字、空格和其他字符的个数

这种方法利用了C++标准库中的字符分类函数,是最直接和可读性最好的方法。它逐个检查字符串中的每个字符,使用专门的函数来判断字符类型。这种方法基于ASCII字符编码的特性,直接比较字符的ASCII值来判断类型。这种方法使用switch语句和case范围(GCC扩展)来实现字符分类,展示了另一种控制流结构的使用方式。"count_if"函数,配合lambda表达式来实现字符分类统计,体现了函数式编程的思想。我将详细讲解上述四种方法的思考逻辑和代码含义,帮助你理解每种方法的实现原理和适用场景。

2025-09-11 15:28:33 993

原创 【C++练习】13.C++输出九九乘法表的方法详解

方法优点缺点适用场景双重for循环简单直观,易于理解代码重复性高基础教学,简单需求while循环循环控制更灵活代码稍显冗长需要灵活控制循环的场景递归实现展示递归思想,代码优雅递归深度限制,效率略低教学递归概念格式化输出输出美观整齐需要额外头文件需要精确控制输出的场景函数封装模块化,可重用增加函数调用开销大型项目,代码复用倒序输出展示不同输出顺序非常规需求特殊需求或教学目的在实际开发中,双重for循环和函数封装是最常用的方法,因为它们既简单又实用。

2025-09-11 15:22:05 688

原创 【C++练习】12.C++检查一个数是否为回文数

回文数是指正读和反读都相同的数字。对于大多数情况,数字反转法或双指针法是较好的选择。

2025-09-09 19:27:11 435

原创 【C++练习】11.C++中计算整数阶乘的几种方法

阶乘是数学中常见的运算,表示从1到该整数的所有正整数相乘。在C++中,有多种方法可以实现阶乘计算。选择哪种方法取决于具体需求,如性能要求、编译时计算需求等。

2025-09-09 19:21:50 404

原创 【C++练习】10.C++生成斐波那契数列的前20项

每种方法都有其优缺点,对于生成前20项这样的小规模数列,所有方法都适用。但对于更大的数列,递归方法效率会明显下降,而循环和动态规划方法更为高效。斐波那契数列是一个经典的数学序列,前两项为0和1,后续每一项都是前两项之和。

2025-09-07 08:21:22 367

原创 【C++练习】09.C++判断闰年的方法

以上方法都遵循这一规则,只是实现方式不同。在实际应用中,方法二(简化逻辑表达式)是最常用且易于理解的实现方式。在C++中,判断一个年份是否为闰年有几种常见的方法。

2025-09-07 08:15:22 366

原创 【C++练习】08.将摄氏温度转换为华氏温度(F = C × 9/5 + 32)

cout << "输入摄氏温度: ";return 0;cout << "输入摄氏温度: ";return 0;cout << "输入摄氏温度: ";return 0;cout << "输入摄氏温度: ";return 0;cout << "输入摄氏温度: ";return 0;9cout << "输入摄氏温度: ";return 0;cout << "输入摄氏温度: ";return 0;5。

2025-09-05 14:24:35 323

原创 【C++练习】07.C++实现简单四则运算计算器的方法

【代码】【C++练习】07.C++实现简单四则运算计算器的方法。

2025-09-05 14:17:40 409

原创 【C++练习】06.输出100以内的所有素数

基础判断法简单直观,适合小范围素数判断筛法在大数据量时效率更高STL版本展示了C++标准库的使用递归版本展示了另一种思维方式。

2025-09-04 17:17:12 653

原创 【C++练习】05.C++计算1到100累加和的方法

这些方法各有特点,从简单的循环到数学公式,再到高级的STL算法和并行计算,可以根据具体需求选择合适的方法。

2025-09-04 17:11:04 414

原创 【C++练习】04.输入三个数找出最大值

这些方法各有优缺点,可以根据具体需求和场景选择最适合的实现方式。最简单直接的方法是使用 std::max 函数,而最通用的方法是使用函数模板。在 C++ 中,有多种方法可以找出三个数中的最大值。

2025-09-03 13:34:00 876

原创 【C++练习】03.判断一个整数是奇数还是偶数

最常用和高效的方法是 模运算(%) 和 位运算(& 1)。位运算通常性能更好,因为它是直接操作二进制位。其他方法更多是出于教学或特定场景的考虑。

2025-09-03 13:33:22 530

原创 【机器人概念设计软件操作手册】建筑与环境建模

《建筑与环境建模技术指南》详细介绍了使用Blender进行建筑建模和环境布局的全流程。在建筑建模部分,从准备工作、基础结构创建到细节处理,涵盖了模型优化、插件使用等技巧,并提供了Python脚本示例。环境构建部分则阐述了场景创建、元素整合、灯光与摄像机设置的方法,以及渲染输出配置。文章通过具体代码演示了单位设置、几何体操作、材质调整等关键步骤,为建筑可视化项目提供了实用的技术参考。

2025-09-02 15:27:29 304

原创 【机器人概念设计软件操作手册】角色建模的基本流程

角色建模的基本流程包括:概念设计(确定角色外观和收集参考资料)、基础建模(创建和调整基础网格)、细节建模(添加精细结构)、UV展开与贴图(处理纹理映射)、材质纹理(设置表面属性)、骨骼绑定(为动画做准备)。练习时可以从简单角色入手,逐步掌握从概念设计到最终成型的完整建模技术。关键步骤包括正确使用参考图像、合理规划建模顺序、处理UV拆分和应用材质等。

2025-09-02 09:15:00 166

原创 【C++练习】02C++计算两个整数的和

本文介绍了C++中计算两个整数之和的实现方法。通过使用cin读取用户输入,cout输出结果,演示了基本的整数加法运算。文章包含完整代码示例,解析了输入输出处理流程,并提供了输入验证的扩展方案,以处理非数字字符等异常情况。还详细讲解了cin的工作原理、常见问题及优化技巧,包括类型不匹配处理、字符串输入方法和缓冲区管理。最后给出了一个包含完整输入验证的范例代码,确保程序健壮性。全文兼顾基础操作与进阶技巧,适合不同层次的C++开发者参考。

2025-09-02 08:30:00 714

原创 【机器人概念设计软件操作手册】灯光与渲染基础

本文介绍了Blender中灯光与渲染的基础知识,包括四种主要灯光类型(点光源、聚光灯、日光灯和区域光)的特点、适用场景和设置方法,以及灯光的基本参数(强度、颜色、衰减和阴影)调整。此外,还讲解了渲染引擎(Eevee和Cycles)的选择、渲染属性设置(分辨率、帧范围和采样)和输出设置(文件格式和保存路径)。这些内容为Blender新手提供了基本的灯光和渲染操作指南。

2025-09-01 09:15:00 196

原创 【C++练习】01使用 `cout` 输出 “Hello, World!“

这篇教程介绍了C++中cout的基本用法。主要内容包括:通过#include <iostream>引入头文件,使用std::cout <<输出内容,std::endl换行和刷新缓冲区。还演示了如何编译运行程序,输出"Hello, World!"。cout支持多种数据类型输出,可通过<iomanip>控制格式(如精度、宽度、进制)。性能优化建议用\n代替endl,并介绍了重载<<运算符输出自定义类型。最后指出cout是线程不安全的,多线程环境

2025-09-01 08:30:00 409

原创 【机器人概念设计软件操作手册】材质与纹理基础

本文介绍了Blender中材质与纹理的基础知识,包括材质节点的使用与理解、基本纹理的创建与应用、UV展开与贴图坐标以及绘制贴图的方法。主要内容有:1)材质节点的基本概念和常用节点(如Principled BSDF、Material Output等)的创建、连接和参数调整;2)图像纹理和程序纹理的创建与应用;3)UV展开的概念和操作步骤,以及UV编辑器的使用;4)通过代码演示如何准备模型、设置UV映射、绘制纹理并应用到模型上。这些基础操作对创建3D模型的材质效果至关重要。

2025-08-31 09:15:00 169

原创 【机器人零件】姿态传感器

本文介绍了姿态传感器原理及其在机器人中的应用,包括平衡控制、导航、机械臂定位等场景。提供了基于MPU6050的C++代码示例,涵盖硬件初始化、数据读取和互补滤波实现。详细解析了卡尔曼滤波算法原理,包括系统模型、预测/更新阶段及扩展卡尔曼滤波(EKF)方法,并给出Python实现示例。最后总结了传感器校准、坐标系对齐等关键实现细节,以及ROS集成和实时性优化建议。

2025-08-31 08:30:00 1095

原创 【机器人概念设计软件操作手册】高级建模工具

本文介绍了高级建模工具的三大核心功能:1)雕刻工具部分详细讲解了动态拓扑技术的概念、启用方法和参数设置,以及各类雕刻笔刷的应用技巧;2)多分辨率建模与细分曲面章节阐述了通过多级别编辑模型的方法,并说明了细分曲面的平滑处理技术;3)布尔运算部分系统介绍了并集、交集、差集三种运算的操作流程和应用场景。全文通过具体操作步骤和参数说明,为复杂模型创作提供了完整的工具使用指南。

2025-08-30 09:15:00 188

原创 【机器人零件】陀螺仪

本文介绍了陀螺仪的工作原理及其在机器人中的应用,并提供了C++代码示例。陀螺仪基于角动量守恒原理测量角速度,广泛应用于机器人姿态稳定、导航和运动检测。文中详细解析了使用MPU6050传感器读取数据并计算俯仰角的C++实现,包括初始化、数据读取、互补滤波姿态解算等关键步骤,并说明了参数调整和实际应用注意事项。该代码可作为机器人姿态控制的开发基础。

2025-08-30 08:30:00 668

原创 【机器人概念设计软件操作手册】 建模技巧与最佳实践

本文介绍了Blender建模的关键技巧与最佳实践,包括镜像修改器对称建模、循环切割和环形选择优化网格、网格清理三大核心内容。通过镜像修改器实现高效对称建模,详细说明了参数设置和操作步骤;利用循环切割和环形选择工具提升网格精度;最后提供网格清理与优化技巧,如删除冗余几何体、合并顶点和使用细分工具等,帮助用户创建更高效的3D模型。

2025-08-29 09:15:00 313

原创 【机器人零件】无框力矩电机

无框力矩电机是一种直接驱动电机,仅保留转子和定子,具有高转矩密度、低齿槽效应和快速动态响应的特点。它广泛应用于机器人关节驱动、精密力控和轻量化设计中。通过基于PID控制的C++代码可实现精准位置控制,其中扭矩常数和极对数是关键参数,分别影响单位电流产生的扭矩和电机转速特性。这类电机通过优化磁路设计,在提升性能的同时减少了机械传动误差。

2025-08-29 08:30:00 1003

原创 【机器人零件】摆线针轮减速器

摘要: 摆线针轮减速器是一种精密减速装置,基于摆线齿轮与针轮啮合实现高减速比,具有高刚性、零背隙和大扭矩特性,广泛应用于工业机器人关节驱动。其原理是通过偏心轮带动摆线齿轮产生摆动,与固定针齿啮合实现减速。C++代码示例展示了减速比建模、背隙补偿和扭矩保护等核心控制逻辑。减速比定义为输入输出转速比,需考虑效率修正和多级系统建模。背隙补偿通过机械预紧或电子算法消除运动间隙,扭矩保护则通过实时监测和阈值触发机制确保系统安全。这些技术在数控机床、机器人等精密传动系统中至关重要。

2025-08-28 09:15:00 1297

原创 【机器人零件】激光雷达

激光雷达(LiDAR)通过发射激光束并接收反射信号进行测距,主要采用飞行时间法(ToF)和三角测距法。ToF通过计算激光往返时间差获取距离,分为直接ToF(高精度)和间接ToF(低成本);三角测距法则基于几何关系计算距离,适用于短距测量。技术核心包括激光发射器、接收器和计时单元,广泛应用于自动驾驶、工业检测和消费电子。激光雷达结合SLAM算法可实现机器人定位、建图、避障和物体识别。实际应用中需注意传感器驱动安装、点云数据处理优化和坐标系对齐等问题。

2025-08-28 08:30:00 1533

原创 【机器人零件】视觉传感器

视觉传感器作为机器人感知环境的核心部件,其技术进步将直接推动机器人应用范围的扩大和性能的提升。开发者需要根据具体应用场景选择合适的视觉传感器类型,并掌握相关的算法和编程技术,才能构建出高效可靠的机器人视觉系统。机器人视觉传感器是机器人感知环境的核心部件,通过光学元件和成像装置获取外部环境图像信息,为机器人提供"视觉"能力。图像传感器是机器人视觉系统中最基础的组件,能够将光信号转换为电信号,实现图像的采集和处理。以下是两个基于视觉的机器人系统C++实现示例,展示视觉传感器在实际应用中的编程实现。

2025-08-27 09:37:20 603

Markdown基本语法用于撰写帮助文档或是用于论坛上发表消息

Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。 Markdown基本语法适用于新手了解、掌握markdown的使用方法。 Markdown 能被使用来撰写电子书,如:Gitbook。 当前许多网站都广泛使用 Markdown 来撰写帮助文档或是用于论坛上发表消息。例如:GitHub、简书、reddit、Diaspora、Stack Exchange、OpenStreetMap 、SourceForge等。 其中包括了常用的标题层级、mermaid流程图、Flowchart流程图、UML图、甘特图、KaTex 数学公式等常用命令。还有插入图片、表格、链接等基础命令。 同时也可作为Obsidian的入门使用教程。

2023-12-05

ubuntu新手使用教程文件管理命令大全

ubuntu新手使用教程包含所有linux系统所使用文件管理命令共48个。 cat chattr chgrp chmod chown cksum cmp diff diffstat file find git gitview indent cut ln less locate lsattr mattrib mc mdel mdir mktemp more mmove mread mren mtools mtoolstest mv od paste patch rcp rm slocate split tee tmpwatch touch umask which cp whereis mcopy mshowfat rhmask scp awk read updatedb

2023-12-05

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

TA关注的人

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