Project 0 :C++ Primer
前言:这个项目主要是考查初学者对于C++语言特性的熟练程度,建议先学习C++,在学习本课程。
预备技能
- 类与继承
- 虚函数
- 模板
- stl里的智能指针,这里的话特别是unique_ptr
- std::move语法
- Lambda 表达式
主要实验步骤
在这个项目中,你将实现三个类。矩阵、RowMatrix和RowMatrixOperations。这些矩阵是简单的二维矩阵,必须支持加法、矩阵乘法和一个简化的通用矩阵乘法(GEMM)操作。
你只需要修改一个文件:p0_starter.h 你可以在BusTub资源库中找到这个文件,地址是 src/include/primer/p0_starter.h。
在这个头文件中,定义了你必须实现的三个类。Matrix抽象类定义了派生类RowMatrix的公共函数。RowMatrixOperations类使用RowMatrix对象来实现上面概述中提到的操作。文件中指定了函数原型和成员变量。该项目要求你填写所有构造函数、解构函数和成员函数的实现。不要添加任何额外的函数原型或成员变量。实现应该只包括已经定义的函数。
代码不公布,需要私戳。
本地测试工具
在build目录下面进行
$ make starter_test
$ cd test/
$ ./starter_test
这是最基本的测试,用于初步检查,接着是Gradescope测试。
Gradescope 测试
注册与使用方法
在进行使用该工具之前,必须要进行格式检查,否则无疑是浪费时间。
在bulid目录下进行:
$ make format
$ make check-lint
$ make check-clang-tidy
这个只是初步的格式检查,上传的方法,我个人使用的是zip文件上传,
在主目录下面进行
zip solution.zip src/include/primer/p0_starter.h
这个的文件目录很重要,千万不可直接压缩,最后上传即可。
后面仍然会遇到各种报错,参考这篇文章
进行修改即可。
测试结果

本文档详细介绍了C++ Primer项目,旨在检验初学者对C++特性的掌握,包括类与继承、虚函数、模板、智能指针和移动语义等。项目要求实现Matrix、RowMatrix和RowMatrixOperations三个类,支持矩阵加法、乘法和GEMM操作。提供了测试步骤和Gradescope格式检查流程,帮助开发者确保代码质量和规范性。
947

被折叠的 条评论
为什么被折叠?



