引言
此前我们探讨过 String 类的基础接口,也通过 OJ 题目熟悉了常用函数。今天我们来深入底层,模拟实现一下 String 类。这不仅能巩固 C++ 内存管理知识,还能理解 STL 容器背后的设计思想。
String 类的模拟实现
String 类在 STL 库出现之前就已存在,其接口设计对后续标准库影响深远。相比传统数据结构,它引入了迭代器等机制,更好地耦合了算法与对象。
迭代器与成员变量
我们先从迭代器入手,这是访问容器的核心方式。
class string {
public:
typedef char* iterator;
typedef const char* const_iterator;
const char* c_str() const { return _str; }
iterator begin() { return _str; }
iterator end() { return _str + _size; }
// const 版本,处理 const 修饰的对象时避免权限放大
const_iterator begin() const { return _str; }
const_iterator end() const { return _str + _size; }
size_t size() const { return _size; }
{ _capacity; }
:
* _str = ;
_size = ;
_capacity = ;
npos = ;
};


