0

我已经定义了自己的字符迭代器类。我可以以某种方式将其插入 std::string 以便我不必再次实现 std::string 类型的接口吗?我检查了 std::basic_string 的模板参数,但它不需要任何此类。

4

2 回答 2

1

一种想法是提供返回迭代器的函数begin(std::string)end(std::string)然后可以在所有需要迭代器的地方使用这些。

begin()自由函数风格是从 c++11 开始的。

于 2012-12-03T10:35:39.470 回答
0

std::string 有一个重载的构造函数,它将采用一个迭代器对。那会起作用,但要创建一个副本。这当然是你能做的最好的。考虑一个具有“小字符串优化”的实现,即对象本身char[N]内部的一个小字符串。std::string这很可能与您的内存布局不兼容。

于 2012-12-03T10:57:11.083 回答