c++之STL

c++之STL_第1张图片

首先我们来仔细研究string

c++之STL_第2张图片

首先我们需要实现string的构造函数和析构函数。有new就有delete.

c++之STL_第3张图片

然后我们实现size()和c_str(),其中c_str就是可以将string类型转换为char*类型返回。

c++之STL_第4张图片

通过运算符重载,我们就可以实现string的[]访问。

c++之STL_第5张图片

然后我们实现+=和append。

c++之STL_第6张图片

insert实现的时候要避免end变成负数(size_t变成负数就会是无穷大)

其次要防止(int)的-1与size_t类型比较,否则由于整形提升也会出错。

c++之STL_第7张图片

这里实现字符串整个插

上面那句话是一个特殊处理。

然后实现find和substr这都是和数据结构的实现非常像的。

c++之STL_第8张图片

c++之STL_第9张图片

然后就是clear的实现

c++之STL_第10张图片

然后就是流插入和流提取的实现

c++之STL_第11张图片

c++之STL_第12张图片

但是要注意用in.get()提取,如果用in由于cin会省略空格和回车,会导致陷入死循环。

你可能感兴趣的:(c++,开发语言)