ForcibleBugMaker_社区达人页

个人头像照片
ForcibleBugMaker
已加入开发者社区226

勋章 更多

个人头像照片
专家博主
专家博主
个人头像照片
星级博主
星级博主
个人头像照片
技术博主
技术博主
个人头像照片
江湖新秀
江湖新秀

成就

已发布63篇文章
5条评论
已回答0个问题
0条评论
已发布0个视频
github地址

技术能力

兴趣领域
擅长领域
技术认证

暂时未有相关云产品技术能力~

暂无个人介绍

暂无精选文章
暂无更多信息

2024年07月

  • 07.03 19:18:16
    发表了文章 2024-07-03 19:18:16

    我的创作纪念日&&学期总结

    🌈学期总结:博主经历紧张期末考,九门课程挑战大,专注复习牺牲其他。学期忙碌参赛多,技术学习广度待提升。博客增粉遇高手,阅读与思考并重。假期计划:短暂放松后,加速技术学习,分享,阅读,实习。目标大厂,不读研,先立个Flag!🎉未来,成都游后留校奋斗,生活学习两不误。感谢关注,期待交流!💬交友信息见主页。❤️
  • 07.03 19:17:02
    发表了文章 2024-07-03 19:17:02

    【C++】list模拟实现

    本文档介绍了C++ STL中`list`容器的模拟实现,包括`ListNode`节点类、迭代器类和`list`类的详细设计。`ListNode`模板类存储数据并维护前后指针;`ListIterator`是一个复杂的模板类,提供解引用、自增/自减以及比较操作。`list`类包含了链表的各种操作,如插入、删除、访问元素等,并使用迭代器作为访问接口。实现中,迭代器不再是简单的指针,而是拥有完整功能的对象。此外,文档还提到了迭代器的实现对C++语法的特殊处理,使得`it->_val`的写法成为可能。文章通过分步骤展示`list`的各个组件的实现,帮助读者深入理解STL容器的内部工作原理。
  • 07.03 19:15:37
    发表了文章 2024-07-03 19:15:37

    【C++】list的使用(下)

    `C++` 中 `std::list` 的 `merge()`、`sort()` 和 `reverse()` 操作: - `merge(x)` 和 `merge(x, comp)`: 合并两个已排序的`list`,将`x`的元素按顺序插入当前`list`,`x`清空。比较可自定义。 - `sort()` 和 `sort(comp)`: 对`list`元素排序,保持等价元素相对顺序。内置排序基于稳定排序算法,速度较慢。 -reverse(): 反转`list`中元素的顺序。 这些操作不涉及元素构造/销毁,直接移动元素。注意,`sort()`不适合`std::list`,因链表结构不利于快速排序
  • 07.03 19:14:01
    发表了文章 2024-07-03 19:14:01

    【C++】list的使用(下)

    这篇博客探讨了C++ STL中`list`容器的几个关键操作,包括`splice()`、`remove()`、`remove_if()`和`unique()`。`splice()`允许高效地合并或移动`list`中的元素,无需构造或销毁。`remove()`根据值删除元素,而`remove_if()`则基于谓词移除元素。`unique()`则去除连续重复的元素,可选地使用自定义比较函数。每个操作都附带了代码示例以说明其用法。
  • 07.03 19:11:55
    发表了文章 2024-07-03 19:11:55

    【C++】list的使用(上)

    迭代器在STL中统一了访问接口,如`list`的`begin()`和`end()`。示例展示了如何使用正向和反向迭代器遍历`list`。注意`list`的迭代器不支持加减操作,只能用`++`和`--`。容器的`empty()`和`size()`用于检查状态和获取元素数。`front()`和`back()`访问首尾元素,`assign()`重载函数用于替换内容,`push_*/pop_*`管理两端元素,`insert()`插入元素,`erase()`删除元素,`resize()`调整大小,`clear()`清空容器。这些接口与`vector`和`string`类似,方便使用。
  • 07.03 19:11:10
    发表了文章 2024-07-03 19:11:10

    【C++】list的使用(上)

    **C++ STL的list是一个基于双向循环链表的容器,支持常数时间内插入和删除,但不支持随机访问。默认构造函数、填充构造、迭代器范围构造和拷贝构造提供多种初始化方式。析构函数自动释放内存,赋值运算符重载用于内容替换。示例代码展示了构造和赋值操作。**
  • 07.03 19:10:10
    发表了文章 2024-07-03 19:10:10

    【C++】vector的使用下

    **C++ 中的 `std::vector` 概要:** - **元素获取:** 支持 `operator[]`(越界时不检
  • 07.03 19:00:29
    发表了文章 2024-07-03 19:00:29

    【C++】vector的使用上

    **C++ STL的vector简介与用法:** Vector是动态顺序数组,提供高效下标访问,支持动态增长。与数组类似但可自动调整大小。常用构造函数包括默认、填充、迭代器范围和拷贝构造。析构函数自动释放内存。赋值运算符执行深拷贝。迭代器接口包括`begin()`和`end()`(反向对应`rbegin()`和`rend()`),C++11增加了const版本以支持只读访问。示例代码展示了不同构造函数和迭代器的使用。
  • 07.03 18:55:05
    发表了文章 2024-07-03 18:55:05

    【C++】string模拟实现(下)

    本文档介绍了自定义`string`类的一些关键功能实现,包括`reserve()`用于内存管理,`push_back()`和`append()`添加字符或字符串,运算符`+=`的重载,以及`insert()`, `erase()`进行插入和删除操作。此外,还涵盖了`find()`查找函数,字符串的比较运算符重载,`substr()`获取子串,`clear()`清除内容,以及流插入和提取操作。常量`npos`用于表示未找到的标记。文档以代码示例和运行结果展示各功能的使用。
  • 07.03 18:53:17
    发表了文章 2024-07-03 18:53:17

    【C++】string模拟实现

    这篇博客探讨了自定义实现C++ `string` 类的关键功能,包括构造、拷贝构造、赋值运算符重载及析构函数。作者强调了理解并实现这些功能对于面试的重要性。博客介绍了`string` 类的头文件`string.h`,其中定义了迭代器、基本成员函数如`swap()`、`size()`、`c_str()`等,并提到了深拷贝概念。此外,还展示了构造函数、析构函数和赋值运算符的实现,以及迭代器的定义与使用。博客还包括对C语言字符串函数的引用,以辅助读者理解实现细节。
  • 07.03 18:40:51
    发表了文章 2024-07-03 18:40:51

    【C++】string类的使用④(常量成员Member constants)

    C++ `std::string` 的 `find_first_of`, `find_last_of`, `find_first_not_of`, `find_last_not_of` 函数分别用于从不同方向查找目标字符或子串。它们都返回匹配位置,未找到则返回 `npos`。`substr` 用于提取子字符串,`compare` 则提供更灵活的字符串比较。`npos` 是一个表示最大值的常量,用于标记未找到匹配的情况。示例代码展示了这些函数的实际应用,如替换元音、分割路径、查找非字母字符等。
  • 07.03 18:39:55
    发表了文章 2024-07-03 18:39:55

    【C++】string类的使用④(字符串操作String operations )

    这篇博客探讨了C++ STL中`std::string`的几个关键操作,如`c_str()`和`data()`,它们分别返回指向字符串的const char*指针,前者保证以'\0'结尾,后者不保证。`get_allocator()`返回内存分配器,通常不直接使用。`copy()`函数用于将字符串部分复制到字符数组,不添加'\0'。`find()`和`rfind()`用于向前和向后搜索子串或字符。`npos`是string类中的一个常量,表示找不到匹配项时的返回值。博客通过实例展示了这些函数的用法。
  • 07.03 18:37:39
    发表了文章 2024-07-03 18:37:39

    【C++】string类的使用③(非成员函数重载Non-member function overloads)

    这篇文章探讨了C++中`std::string`的`replace`和`swap`函数以及非成员函数重载。`replace`提供了多种方式替换字符串中的部分内容,包括使用字符串、子串、字符、字符数组和填充字符。`swap`函数用于交换两个`string`对象的内容,成员函数版本效率更高。非成员函数重载包括`operator+`实现字符串连接,关系运算符(如`==`, `<`等)用于比较字符串,以及`swap`非成员函数。此外,还介绍了`getline`函数,用于按指定分隔符从输入流中读取字符串。文章强调了非成员函数在特定情况下的作用,并给出了多个示例代码。
  • 07.03 18:36:46
    发表了文章 2024-07-03 18:36:46

    C++】string类的使用③(修改器Modifiers)

    这篇博客探讨了C++ STL中`string`类的修改器和非成员函数重载。文章介绍了`operator+=`用于在字符串末尾追加内容,并展示了不同重载形式。`append`函数提供了更多追加选项,包括子串、字符数组、单个字符等。`push_back`和`pop_back`分别用于在末尾添加和移除一个字符。`assign`用于替换字符串内容,而`insert`允许在任意位置插入字符串或字符。最后,`erase`函数用于删除字符串中的部分内容。每个函数都配以代码示例和说明。
  • 07.03 18:35:12
    发表了文章 2024-07-03 18:35:12

    【C++】string类的使用②(元素获取Element access)

    ```markdown 探索C++ `string`方法:`clear()`保持容量不变使字符串变空;`empty()`检查长度是否为0;C++11的`shrink_to_fit()`尝试减少容量。`operator[]`和`at()`安全访问元素,越界时`at()`抛异常。`back()`和`front()`分别访问首尾元素。了解这些,轻松操作字符串!💡 ```
  • 07.03 18:34:10
    发表了文章 2024-07-03 18:34:10

    【C++】string类的使用②(容量接口Capacity )

    这篇博客探讨了C++ STL中string的容量接口和元素访问方法。`size()`和`length()`函数等价,返回字符串的长度;`capacity()`提供已分配的字节数,可能大于长度;`max_size()`给出理论最大长度;`reserve()`预分配空间,不改变内容;`resize()`改变字符串长度,可指定填充字符。这些接口用于优化内存管理和适应字符串操作需求。
  • 07.03 18:33:02
    发表了文章 2024-07-03 18:33:02

    【C++】string类的使用①(迭代器接口begin,end,rbegin和rend)

    迭代器接口是获取容器元素指针的成员函数。`begin()`返回首元素的正向迭代器,`end()`返回末元素之后的位置。`rbegin()`和`rend()`提供反向迭代器,分别指向尾元素和首元素之前。C++11增加了const版本以供只读访问。示例代码展示了如何使用这些迭代器遍历字符串。
  • 07.03 18:31:59
    发表了文章 2024-07-03 18:31:59

    【C++】string类的使用①(默认成员函数

    本文介绍了C++ STL中的`string`类,它是用于方便地操作和管理字符串的类,替代了C语言中不便的字符数组操作。`string`基于`basic_string`模板,提供类似容器的接口,但针对字符串特性进行了优化。学习资源推荐[cplusplus.com](https://cplusplus.com/)。`string`类提供了多种构造函数,如无参构造、拷贝构造、字符填充构造等,以及析构函数和赋值运算符重载。示例代码展示了不同构造函数和赋值运算符的用法。
  • 07.03 18:29:51
    发表了文章 2024-07-03 18:29:51

    【C++】STL简介

    **STL是C++标准库的关键部分,源于Alexander Stepanov的泛型编程研究。它提供了数据结构(如vector、list)和算法,是高效、通用的软件框架。STL始于惠普,后由SGI发展,现已成为C++1998标准的一部分并不断进化。它包括容器、迭代器、算法、仿函数、配接器和分配器六大组件,带来高效性、通用性和可扩展性,但也存在性能开销和学习难度。学习STL涉及理解底层数据结构、用法、实现和实践。推荐[cplusplus.com](https://cplusplus.com)作为学习资源。**
  • 07.03 18:28:43
    发表了文章 2024-07-03 18:28:43

    【C++】模板初阶(下)

    C++的函数模板实例化分为隐式和显式。隐式实例化由编译器根据实参推断类型,如`Add(a1, a2)`,但`Add(a1, d1)`因类型不一致而失败。显式实例化如`Add<double>(a1, d1)`则直接指定类型。模板函数不支持自动类型转换,优先调用非模板函数。类模板类似,用于创建处理多种数据类型的类,如`Vector<T>`。实例化类模板如`Vector<int>`和`Vector<double>`创建具体类型对象。模板使用时,函数模板定义可分头文件和实现文件,但类模板通常全部放头文件以避免链接错误。
  • 07.03 18:25:48
    发表了文章 2024-07-03 18:25:48

    【C++】模板初阶(上)

    **C++模板简介** 探索C++泛型编程,通过模板提升代码复用。模板作为泛型编程基础,允许编写类型无关的通用代码。以`Swap`函数为例,传统方式需为每种类型编写单独函数,如`Swap(int&)`、`Swap(double&)`等,造成代码冗余。函数模板解决此问题,如`template<typename T> void Swap(T&, T&)`,编译器根据实参类型推导生成特定函数,减少重复代码,增强可维护性。模板分函数模板和类模板,提供处理不同数据类型但逻辑相似的功能。
  • 07.03 18:24:03
    发表了文章 2024-07-03 18:24:03

    【C/C++】动态内存管理( C++:new,delete)

    C++的`new`和`delete`用于动态内存管理,分配和释放内存。`new`分配内存并调用构造函数,`delete`释放内存并调用析构函数。`new[]`和`delete[]`分别用于数组分配和释放。不正确匹配可能导致内存泄漏。内置类型分配时不初始化,自定义类型则调用构造/析构。`operator new`和`operator delete`是系统底层的内存管理函数,封装了`malloc`和`free`。定位`new`允许在已分配内存上构造对象,常用于内存池。智能指针等现代C++特性能进一步帮助管理内存。
  • 07.03 18:21:32
    发表了文章 2024-07-03 18:21:32

    【C/C++】动态内存管理(C:malloc,realloc,calloc,free)

    探索C++与C语言的动态内存管理:从malloc到new/delete,了解内存分布及栈、堆的区别。文章涵盖malloc、realloc、calloc与free在C中的使用,强调内存泄漏的风险。C++引入new和delete,支持对象构造与析构,还包括operator new和placement-new。深入分析内存管理机制,揭示C与C++在内存处理上的异同。别忘了,正确释放内存至关重要!
  • 07.03 18:17:46
    发表了文章 2024-07-03 18:17:46

    【C++】类和对象⑤(static成员 | 友元 | 内部类 | 匿名对象)

    📚 C++ 知识点概览:探索类的`static`成员、友元及应用🔍。

2024年06月

  • 06.28 18:07:25
    发表了文章 2024-06-28 18:07:25

    【C++】类和对象④(再谈构造函数:初始化列表,隐式类型转换,缺省值

    C++中的隐式类型转换在变量赋值和函数调用中常见,如`double`转`int`。取引用时,须用`const`以防修改临时变量,如`const int& b = a;`。类可以有隐式单参构造,使`A aa2 = 1;`合法,但`explicit`关键字可阻止这种转换。C++11起,成员变量可设默认值,如`int _b1 = 1;`。博客探讨构造函数、初始化列表及编译器优化,关注更多C++特性。
  • 06.28 18:04:58
    发表了文章 2024-06-28 18:04:58

    【C++】类和对象④(类的默认成员函数:取地址及const取地址重载 )

    本文探讨了C++中类的成员函数,特别是取地址及const取地址操作符重载,通常无需重载,但展示了如何自定义以适应特定需求。接着讨论了构造函数的重要性,尤其是使用初始化列表来高效地初始化类的成员,包括对象成员、引用和const成员。初始化列表确保在对象创建时正确赋值,并遵循特定的执行顺序。
  • 06.28 18:02:09
    发表了文章 2024-06-28 18:02:09

    【C++】日期类Date(详解)③

    该文介绍了C++中直接相减法计算两个日期之间差值的方法,包括确定max和min、按年计算天数、日期矫正及计算差值。同时,文章讲解了const成员函数,用于不修改类成员的函数,并给出了`GetMonthDay`和`CheckDate`的const版本。此外,讨论了流插入和流提取的重载,需在类外部定义以符合内置类型输入输出习惯,并介绍了友元机制,允许非成员函数访问类的私有成员。全文旨在深化对运算符重载、const成员和流操作的理解。
  • 06.28 18:00:54
    发表了文章 2024-06-28 18:00:54

    【C++】日期类Date(详解)②

    - `-=`通过复用`+=`实现,`Date operator-(int day)`则通过创建副本并调用`-=`。 - 前置`++`和后置`++`同样使用重载,类似地,前置`--`和后置`--`也复用了`+=`和`-=1`。 - 比较运算符重载如`>`, `==`, `<`, `<=`, `!=`,通常只需实现两个,其他可通过复合逻辑得出。 - `Date`减`Date`返回天数,通过迭代较小日期直到与较大日期相等,记录步数和符号。 ``` 这是236个字符的摘要,符合240字符以内的要求,涵盖了日期类中运算符重载的主要实现。
  • 06.28 17:58:32
    发表了文章 2024-06-28 17:58:32

    C++】日期类Date(详解)①

    这篇教程讲解了如何使用C++实现一个日期类`Date`,涵盖操作符重载、拷贝构造、赋值运算符及友元函数。类包含年、月、日私有成员,提供合法性检查、获取某月天数、日期加减运算、比较运算符等功能。示例代码包括`GetMonthDay`、`CheckDate`、构造函数、拷贝构造函数、赋值运算符和相关运算符重载的实现。
  • 06.28 17:52:43
    发表了文章 2024-06-28 17:52:43

    【C++】类和对象③(类的默认成员函数:赋值运算符重载)

    在C++中,运算符重载允许为用户定义的类型扩展运算符功能,但不能创建新运算符如`operator@`。重载的运算符必须至少有一个类类型参数,且不能改变内置类型运算符的含义。`.*::sizeof?`不可重载。赋值运算符`=`通常作为成员函数重载,确保封装性,如`Date`类的`operator==`。赋值运算符应返回引用并检查自我赋值。当未显式重载时,编译器提供默认实现,但这可能不足以处理资源管理。拷贝构造和赋值运算符在对象复制中有不同用途,需根据类需求定制实现。正确实现它们对避免数据错误和内存问题至关重要。接下来将探讨更多操作符重载和默认成员函数。
  • 06.28 17:50:20
    发表了文章 2024-06-28 17:50:20

    【C++】类和对象③(类的默认成员函数:拷贝构造函数)

    本文探讨了C++中拷贝构造函数和赋值运算符重载的重要性。拷贝构造函数用于创建与已有对象相同的新对象,尤其在类涉及资源管理时需谨慎处理,以防止浅拷贝导致的问题。默认拷贝构造函数进行字节级复制,可能导致资源重复释放。例子展示了未正确实现拷贝构造函数时可能导致的无限递归。此外,文章提到了拷贝构造函数的常见应用场景,如函数参数、返回值和对象初始化,并指出类对象在赋值或作为函数参数时会隐式调用拷贝构造。
  • 06.28 17:44:25
    发表了文章 2024-06-28 17:44:25

    【C++】类和对象②(类的默认成员函数:构造函数 | 析构函数)

    C++类的六大默认成员函数包括构造函数、析构函数、拷贝构造、赋值运算符、取地址重载及const取址。构造函数用于对象初始化,无返回值,名称与类名相同,可重载。若未定义,编译器提供默认无参构造。析构函数负责对象销毁,名字前加`~`,无参数无返回,自动调用以释放资源。一个类只有一个析构函数。两者确保对象生命周期中正确初始化和清理。

2024年05月

  • 发表了文章 2024-07-03

    【C++】list的使用(下)

  • 发表了文章 2024-07-03

    【C++】list模拟实现

  • 发表了文章 2024-07-03

    【C++】list的使用(下)

  • 发表了文章 2024-07-03

    我的创作纪念日&&学期总结

  • 发表了文章 2024-07-03

    【C++】list的使用(上)

  • 发表了文章 2024-07-03

    【C++】list的使用(上)

  • 发表了文章 2024-07-03

    【C++】vector的使用下

  • 发表了文章 2024-07-03

    【C++】vector的使用上

  • 发表了文章 2024-07-03

    【C++】string模拟实现(下)

  • 发表了文章 2024-07-03

    【C++】string模拟实现

  • 发表了文章 2024-07-03

    【C++】string类的使用④(常量成员Member constants)

  • 发表了文章 2024-07-03

    【C++】string类的使用④(字符串操作String operations )

  • 发表了文章 2024-07-03

    【C++】模板初阶(下)

  • 发表了文章 2024-07-03

    【C++】模板初阶(上)

  • 发表了文章 2024-07-03

    【C++】string类的使用②(元素获取Element access)

  • 发表了文章 2024-07-03

    【C++】STL简介

  • 发表了文章 2024-07-03

    【C++】类和对象⑤(static成员 | 友元 | 内部类 | 匿名对象)

  • 发表了文章 2024-07-03

    【C++】string类的使用③(非成员函数重载Non-member function overloads)

  • 发表了文章 2024-07-03

    【C++】string类的使用①(默认成员函数

  • 发表了文章 2024-07-03

    C++】string类的使用③(修改器Modifiers)

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息