Skip to content

1059: str

题目

题目描述

你需要实现一个字符串类 str,支持下列功能/特性:

  • 默认值为空串。
  • char/char */str 构造实例。
  • char */str 对其赋值。
  • 可通过 operator[] 访问对应位置的字符($0$-base)。
  • 成员函数 len(),返回其长度。
  • 成员函数 join(strs),其中 strsstd::vector<str>。该函数用于将一系列字符串拼接成一个新的字符串,且原先字符串之间通过当前实例分隔。例如 str(", ").join(std::vector<str>{'1', '2', '3'}) 会生成一个表示 1, 2, 3str 实例。
  • 成员函数 slice(l, r),表示切片,即提取出字符串中 [l, r) 的字符作为一个新的 str 实例。例如 str("12345").slice(0, 2) 会生成一个表示 12str 实例。

具体来说,你要补充以下 str.hpp: ```cpp

include

include

include

class str { private: //to do public: str();//to do str(const char &c);//to do

str(const char *&& s_);//to do

str &operator=(const char *&& s_);//to do

str(const str &other);//to do

str &operator=(const str &other);//to do

char &operator[](size_t pos);//to do

size_t len() const;//to do

str join(const std::vector<str> &strs) const;//to do

str slice(size_t l, size_t r) const;//to do

~str();//to do

}; ```

提交的代码为 str.hpp 的所有内容。

数据范围

实现了除 joinslice 以外的所有功能,且保证不会发生内存泄漏,可以获得 $40$ 分。

可以增加必要的成员变量甚至成员函数。

vector 容器仅限使用 join 函数参数中给定的,不得另外新增。其余 STL 容器一律禁用。

Oops! 本题目还没有解答!

助教老师们编题的速度,已经超过了解题的速度!

OJ翻了一新,但本解答集还大多用的是2017-2019级,甚至更早的同学们贡献的答案。

如果你已经AC了,可以的话,请您参考添加页面,与大家一起分享你的题解!