使用自己的std :: string迭代器

时间:2012-12-03 10:33:09

标签: c++ stl

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

2 个答案:

答案 0 :(得分:1)

一个想法是提供返回迭代器的begin(std::string)end(std::string)函数。然后可以在所有期望迭代器的地方使用它们。

begin()免费功能样式为from c++11 onwards

答案 1 :(得分:0)

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