- 博客(9)
- 收藏
- 关注
原创 week14
为了更好地理解 C++ 中类模板、成员函数、运算符重载等高级特性,我们计划自行实现部分 STL 中的常用数据结构,包括 pair、vector、map。在这个任务中,我们将分别实现:一个支持构造与等值比较的 MyPair 类;一个支持动态扩容、索引访问和尾部增删的 MyVector 类;一个支持插入、查找、访问与删除的简单 MyMap 类,底层基于 MyVector<MyPair<K, V>> 实现。该任务将帮助我们更深入理解模板编程、类的封装、内存管理与函数设计原则。
2025-05-23 12:47:29
713
原创 week12
模拟实现以下类并完成相应功能:交通工具类(Vehicle)描述了不同交通工具的共有特点。汽⻋(Car)、船(Boat)、⽔陆两⽤汽⻋(AmphibianCar)分别描述了三种不同的交通工具。具体说明如下:Vehicle类为Car和Boat的抽象基类,有一个访问权限为protected、string类型的成员 name。Vehicle类有一个drive() 纯虚函数,不同子类的重写(overwrite)方式不同。
2025-05-15 12:58:28
1790
原创 week 11
小蓝鲸正在复习高级程序设计课程中的类成员函数静态绑定相关知识,小蓝鲸想知道,如何系统化、程序化地确认在某个调用点应该调用哪个类的哪个函数呢?y.func(10);//error!对上述代码,当我们敲下y.func("hello");时,我们知道它将会调用X::func(string),而当我们敲下y.func(10);
2025-05-07 09:50:32
818
原创 week08
析构函数本质上是在系统收回这部分空间前对这部分空间内容的处理,如果成员变量中有其他类,则会自动调用其他类的析构函数。自定义析构函数需要做以下的事情:首先归还自己分配的动态内存,第二如果成员变量是指针而不是对象实例,系统不会自动调用指针所指对象的析构函数,也需要手动调用。
2025-04-10 02:00:00
628
原创 week06
堆是一种动态分配内存的数据结构,用于存储和管理动态分配的对象。它是一块连续的内存空间,用于存储程序运行时动态申请的内存。堆可以被看作是一个由各个内存块组成的堆栈,其中每个内存块都有一个地址指针,指向下一个内存块。当程序需要分配内存时,堆会根据分配算法找到一块足够大的连续内存空间,并将其分配给程序。程序可以在堆中动态创建和销毁对象,而不需要在编译时确定对象的数量或大小。
2025-04-01 00:00:00
1537
原创 week04
计算并输出两个日期之间的天数差。请利用面向对象编程的思想,设计一个 Date 类,该类应包含年、月、日等属性,并提供了方法用于计算两个日期之间的天数差。请仔细阅读提供的 .h 文件,根据整体代码结构,将问题分解,并实现所有标有 //TODO 的部分。你可以调用已有的函数来完成相应功能,你可以浏览整体结构后自行安排各方法实现的顺序。样例输入2025 2 172025 2 18输出2025-02-172025-02-181提示日期先后关系不是固定的注意非法,边界的处理。
2025-03-15 10:00:13
737
原创 week03assignment
栈是一种限定仅在表尾进行插入和删除操作的线性表。表尾这一端被称为栈顶(top),相对地,把另一端称为栈底。在表尾插入元素的操作被称为push,删除表尾元素的操作被称为pop。栈具有后进先出的特性。单调栈是栈的一种变体,顾名思义,就是栈内元素按照单调递增或递减的顺序排列的栈。如果有新的元素入栈,栈调整过程中会将所有破坏单调性的栈顶元素出栈,并且出栈的元素不会再次入栈。你可以结合后文的调用示例进一步理解单调栈。这一部分要求大家实现一个栈内元素类型为int的。
2025-03-07 14:28:13
785
原创 week02
接下来考虑出口,我们回到刚刚写出的参数式,发现所有表达式都可以回到N==1的情况(对每个情况自己举个简单的例子就可以知道),然后考虑由题给范围导致的特殊情况,即M=0。至此解题完毕。
2025-03-02 19:28:20
1585
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅