自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 收藏
  • 关注

原创 C++初学者指南-5.标准库(第二部分)–特殊容器

本文介绍了C++标准库中的各种特殊容器,包括pair、tuple、optional、variant和any等。通过详细说明这些容器的用途及特性,帮助读者理解如何使用这些容器来处理不同类型的值。文章还提供了相关概念及建议,增进初学者在C++编程中的容器使用技巧。

2024-08-26 22:14:22 462

原创 C++初学者指南-5.标准库(第二部分)--可组合范围视图

这篇文章主要介绍了 C++ 标准库中可组合范围视图的使用,包括如何创建和利用不同的视图来处理数据。在文章中,重点讲解了 std::views 提供的各类功能,如过滤、转换、分割和连接视图,以及如何将这些视图组合使用。最后,介绍了一些实用的示例代码,以增强理解和应用能力。

2024-08-17 16:07:12 986

原创 C++初学者指南-5.标准库(第二部分)--二叉堆操作

本文介绍了C++标准库中的二叉堆操作,包括堆的定义、二叉最大堆的特点、堆操作的复杂度以及如何在C++中使用相关算法。重点讲解了堆的初始化、收缩和增长操作,并介绍了一些辅助函数,如排序堆、检查堆性质等,以帮助初学者理解二叉堆的应用和实现。

2024-08-11 22:42:46 916

原创 Linux截图工具gsnap移植arm平台过程记录

记录gsnap截图工具的移植过程。

2024-08-10 16:40:18 400

原创 C++初学者指南-5.标准库(第二部分)--排序序列操作

本文主要介绍了C++标准库中与排序序列操作相关的几个重要算法,包括二分查找、合并以及集合操作。首先,二分查找算法能够在有序序列中以O(log N)的时间复杂度高效查找元素;其次,提供了合并两个已排序序列的方法,能在线性时间内生成一个新的排序序列;最后,介绍了各种集合操作,如并集、交集等,这些操作在已排序列表中执行速度更快。

2024-08-09 22:24:55 957

原创 C++初学者指南-5.标准库(第二部分)--数值运算算法

本文介绍了C++标准库中数值运算的相关算法,重点包括iota、reduce和各种扫描操作(scans),阐述了这些算法的用途、用法及其实现示例,并对并行执行的支持进行了说明。此外,文章还提到了一些遗留操作及其使用场景,为初学者理解C++标准库提供了实用的参考。

2024-08-06 16:24:59 1033

原创 C++初学者指南-5.标准库(第二部分)--移除元素算法

这篇文章详细介绍了 C++ 标准库中移除元素的算法,包括 remove、remove_if、remove_copy、remove_copy_if、unique 和 unique_copy 等。作者强调,虽然这些算法可以移除容器中的元素,但它们并不会自动调整容器的大小,需要使用其他方法如 erase 来实现。文章还涉及了如何使用这些算法来简化代码,并提高编程效率。

2024-08-04 16:01:32 780

原创 C++中lambda使用mutable关键字详解

本文详细解释了C++中lambda表达式使用mutable关键字的意义。通过示例代码,作者展示了如何通过mutable解除lambda默认的const限制,从而允许在函数体内修改捕获的变量。同时,文章还通过反汇编的方式深入分析了lambda内部的实现细节。

2024-08-04 10:06:11 417

原创 C++初学者指南-5.标准库(第二部分)--更改元素算法

本文介绍了C++标准库中的元素更改算法,包括如何使用fill、generate、transform等函数来填充、生成和替换元素。这些算法有助于简单且高效地处理容器中的数据,同时提供了示例代码以辅助学习。

2024-08-03 21:14:32 688

原创 C++初学者指南-5.标准库(第二部分)--序列重新排序算法

本文主要介绍了C++标准库中的序列重新排序算法,包括移位、排序、分区和排列等方面的内容。文章通过示例代码和图示详细解释了相关函数的用法,如reverse、rotate、sort及partition等。同时,强调了这些算法在处理序列中的应用场景以及性能特点,适合初学者和有经验的程序员理解C++标准库中关于序列操作的强大能力。

2024-07-31 14:22:27 663

原创 C++初学者指南-5.标准库(第二部分)--范围复制算法

本文主要介绍了C++标准库中的范围复制算法,通过示例代码讲解了其使用方法和应用场景,同时也对标准序列容器和关联容器进行了概述,帮助初学者更好地理解C++标准库的基本概念和功能。

2024-07-27 21:02:01 318

原创 Visual Studio2022在屏幕缩放后界面问题的解决方法

一开始没注意,开始修改代码和界面,很简单的修改,也不会有bug,改完后就发给客户了,客户收到后测试后说界面变形了,我就奇了怪了,这么简单还会出错,我打开一看还真是,界面元素错位了。想起前面的提示,是不是这个原因造成的。网上找了一番,按修改注册表的方法,实验后不行。事情是这样,年初时换了台2K高分屏的开发笔记本,终于淘汰了那台不堪重负的用了五年的Thinkpad,用了高分屏后将屏幕缩放了150%。这样就运行了一个新的按原始大小的Viusal Studio环境,打开项目修改代码,就没有问题了。

2024-07-27 09:39:32 698 1

原创 C++初学者指南-6.函数对象--lambdas(基础)

本文介绍了C++中的函数对象和Lambda表达式的基础知识,强调了Lambda的变量捕获、闭包保存及其在C++14中的进步。Lambda表达式允许开发者创建能像函数一样调用的对象,尤其在保留状态跟传递数据方面表现出色。

2024-07-26 21:39:12 381

原创 用C++实现动态生成对象的工厂类

本文介绍了如何使用C++实现一个动态生成对象的工厂类,以满足针对不同通信协议的需求。通过定义通信协议的接口基类和具体协议类,实现了根据配置文件动态创建不同协议对象的功能。同时,利用静态映射表和模板,工厂类能够注册和生成所需的协议实例,进而实现灵活的对象管理。

2024-07-26 14:38:57 503

原创 C++初学者指南-6.函数对象--函数对象

本文介绍了C++中的函数对象,强调了其核心特性,包括成员函数重载operator()的定义、如何在算法中使用函数对象进行定制行为,以及需要注意的有状态操作符的副作用。通过示例展示了如何实现函数对象以执行乘法和区间查询,说明了标准库中常见的函数对象类型和使用案例。

2024-07-23 21:40:21 1009

原创 C++初学者指南-5.标准库(第一部分)--标准库范围比较算法

这篇文档介绍了C++标准库中与比较算法相关的函数,包括equal、mismatch、lexicographical_compare和lexicographical_compare_three_way,以及它们的用法和示例。文章提供了对这些函数的调用方式和参数解释,展示了如何比较范围内的元素。此外,还提供了关联的文档和在线资源。

2024-07-21 22:51:23 873

原创 C++初学者指南-5.标准库(第一部分)--标准库查找算法

本文介绍了C++标准库中的各种查找算法,包括定位单个元素、子范围查找、与范围的比较等。具体分析了多个函数的使用案例,如find、find_if、find_if_not等,并提供了代码示例以帮助学习者理解。文中还提到自定义比较函数的使用和连续元素查找的相关内容,目的是帮助初学者掌握C++查找算法的基本应用。

2024-07-20 22:05:34 996

原创 C++初学者指南-5.标准库(第一部分)--标准库查询存在算法

本文介绍了C++初学者指南中关于标准库查询算法的内容,包括any_of/all_of/none_of、count和count_if等算法的用法和示例。此外,还提供了相关内容的视频和链接供进一步学习参考。

2024-07-20 15:35:45 315

原创 C++初学者指南-5.标准库(第一部分)--标准库最小/最大算法

本文介绍了C++标准库中的一些常用最大最小值算法,如min、max、minmax、clamp、min_element、max_element和minmax_element等,并附有详细的示例代码和解释。这些算法能够方便地获取给定范围或容器内的最小值、最大值或者最小最大值对,并支持自定义比较函数的使用。这些有用的标准库算法可以帮助C++初学者更好地掌握和运用C++标准库。

2024-07-18 22:28:54 783

原创 C++初学者指南-5.标准库(第一部分)--容器遍历

本文介绍了C++初学者指南中关于标准库中容器遍历的内容,包括前向遍历、基于范围的循环、逆向遍历等。其中涵盖了不同遍历方式的优缺点以及代码示例,帮助读者更好地理解如何在C++中进行容器遍历。

2024-07-16 21:28:31 964

原创 C++初学者指南-5.标准库(第一部分)--标准库算法介绍

本文概括介绍了C++标准库中的各种算法。这些算法是基础构件,可在(迭代器)范围的元素上进行操作。它们以通用和高效的方式实现,并且许多可以通过自定义函数对象或lambda进行定制。C++17引入的并行执行以及C++20中更优化的标准算法范围接口,进一步提升了标准算法的性能和可用性。

2024-07-14 17:21:44 764

原创 C++初学者指南-5.标准库(第一部分)--标准库关联容器

本文介绍了C++标准库中的关联容器,包括集合和映射的概念、接口用法以及相关内容。关联容器可以唯一排序或哈希键,支持存储键值对映射。标准集合和映射基于节点连接实现,有序集合通常使用平衡二叉树,无序集合则利用哈希表。

2024-07-12 21:53:07 574

原创 C++初学者指南-5.标准库(第一部分)--顺序视图

本文介绍了C++标准库中的顺序视图,着重介绍了std::string_view(C++17)和std::span(C++20)两个重要特性。其中,std::string_view是一个轻量级、只读的字符串视图,避免不必要的内存分配,而std::span是一个非拥有视图,可以用于连续内存块的访问和操作。

2024-07-11 10:39:53 814

原创 C++初学者指南-5.标准库(第一部分)--顺序容器

本文介绍了C++标准库中顺序容器的相关内容,包括标准顺序容器如array、vector、deque、list和forward_list的特点、常见操作、接口概览以及选择指导方针。文章强调了每种容器的特性和适用场景,为初学者提供了清晰的指导。

2024-07-09 11:59:51 763

原创 C++初学者指南-5.标准库(第一部分)--迭代器

本文介绍了C++中关于标准库中迭代器的重要概念:包括默认迭代器、反向迭代器、基于迭代器的循环、交换相邻元素、迭代器范围、迭代器范围中的元素数量等。

2024-07-07 22:38:09 1107

原创 将ldd命令移植到32位Arm开发板

本文记录了作者移植ldd命令到32位Arm开发板的过程和经验。

2024-07-07 16:03:31 392

原创 C++初学者指南-4.诊断---valgrind

本文简单介绍了内存检测工具软件Valgrind的使用方法。

2024-07-07 12:11:29 359

原创 C++初学者指南-4.诊断---未定义行为检测器

本文简单介绍了编译器的未定义行为检测功能。

2024-07-07 11:43:44 181

原创 C++初学者指南-4.诊断---地址检测器

本文介绍了用编译器来对可能得内存问题进行检测的方法。

2024-07-06 20:57:33 283

原创 32位Arm嵌入式开发Ubuntu环境设置

本文讨论了在32位ARM嵌入式开发中配置Ubuntu环境的步骤和注意事项。作者在调试32位ARM A7开发板时遇到Ubuntu22.04版本环境不匹配的问题,最终回退到18.04版本,并分享了安装VMWare虚拟机、更新系统软件、安装编辑器、设置共享目录以及安装各种开发工具和依赖软件的步骤和操作。

2024-07-06 12:52:57 818

原创 C++初学者指南-4.诊断---用gdb调试

本文介绍了C++初学者指南中关于使用gdb调试的内容。主要讨论了gdb调试器的使用方法、调试编译和程序、设置断点、单步执行程序、管理断点以及常用的gdb命令。同时列举了几种gdb前端工具供选择。

2024-07-05 23:25:18 1313

原创 C++初学者指南-4.诊断---基础:警告和测试

本文介绍了针对C++初学者的诊断基础知识,包括警告、断言和测试。重点讨论了编译器警告的重要性和各种编译器选项,以及在代码中使用断言的方法和静态断言的概念。此外,还介绍了测试的指南,如使用断言、编写测试和测试框架的选择。

2024-07-04 23:39:13 1106

原创 C++初学者指南-3.自定义类型(第一部分)-异常

本文介绍了C++中关于自定义类型和异常处理的指南。主要涵盖了异常的定义和处理方式,包括异常的用途、标准库异常、异常的替代方案以及异常的保证和处理方法。此外,文中还提及了使用RAII避免内存泄漏的重要性。

2024-07-03 22:58:15 1004

原创 C++初学者指南-3.自定义类型(第一部分)-析构函数

本文介绍了C++初学者指南中关于自定义类型和析构函数的重要内容。主要涵盖了特殊的成员函数如构造函数和析构函数的作用,RAII资源管理的重要性以及避免编写特殊成员函数的建议。

2024-07-02 21:33:53 679

原创 C++初学者指南-3.自定义类型(第一部分)-指针

本文介绍了C++初学者指南中关于自定义类型中指针的重要内容。主要包括指针的作用、T类型对象指针、操作符、nullptr、const和指针、this指针、前置类型声明以及避免使用指针的建议。

2024-07-01 14:38:23 980

原创 C++初学者指南-3.自定义类型(第一部分)-类和基本自定义类型

自定义类型是面向对象编程中的重要概念。它们通过提供更好的正确性保证、可复用的抽象和资源管理来补充基本类型和简单的聚合类型。自定义类型通过限制成员访问、定义成员函数、用户定义的构造函数和初始化机制等来实现这些目标。设计自定义类型时应遵循一些约定和风格,如保持数据成员私有、使用明确的接口、避免Setter/Getter对等。

2024-06-29 23:55:43 696

原创 嵌入式Linux的浮点运算能力测试

本文介绍了在嵌入式Linux系统上测试浮点运算性能的方法。作者使用了类似Windows下SuperPI的原理,计算一定小数位数的圆周率来评估硬件的浮点运算能力和稳定性。整个过程包括下载源码、交叉编译、下载到目标板运行,并给出了测试结果。该测试方法可以帮助开发者了解嵌入式系统的浮点运算性能。

2024-06-28 22:01:20 620

原创 C++初学者指南-2.输入和输出---从输入流错误中恢复

文章介绍了C++初学者在处理输入流时可能遇到的问题以及相应的解决方案。主要探讨了当输入无效时如何从错误中恢复,避免输入错误影响后续的正常输入。文章提供了一个实用的解决方案,即通过清除输入流的错误状态和缓冲区来重置输入流,从而确保后续输入顺利进行。

2024-06-27 20:59:32 433

原创 C++初学者指南-2.输入和输出---流输入和输出

本文介绍了C++中流输入输出的用法。首先讲解了如何自定义输入输出操作,通过重载运算符实现对自定义类型的输入输出。接着介绍了常用的标准库流类型,如istream、ostream、ifstream等。最后介绍了一些流操作的辅助工具,包括使用getline读取一行、使用ignore跳过字符、以及格式化输出等。

2024-06-26 21:18:10 474

原创 C++初学者指南-2.输入和输出---文件输入和输出

本文介绍了C++中文件输入输出的基本概念和用法,包括如何写入和读取文本文件,如何打开和关闭文件,以及不同的文件打开模式。文章还给出了一个简单的二进制文件读写示例程序。文章内容全面而实用,对C++初学者来说是一个很好的入门资料。

2024-06-25 20:33:25 673

空空如也

空空如也

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

TA关注的人

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