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
这个的文件目录很重要,千万不可直接压缩,最后上传即可。
后面仍然会遇到各种报错,参考这篇文章
进行修改即可。