我已经定义了自己的角色迭代器类。我可以以某种方式将其插入std :: string,以便我不必再次实现std :: string类型的接口?我检查了std :: basic_string的模板参数,但它不需要这种类型的任何东西。
答案 0 :(得分:1)
一个想法是提供返回迭代器的begin(std::string)
和end(std::string)
函数。然后可以在所有期望迭代器的地方使用它们。
begin()
免费功能样式为from c++11 onwards。
答案 1 :(得分:0)
有一个std :: string的重载构造函数,它将采用迭代器对。这可行,但创建一个副本。这当然是你能做的最好的事情。考虑具有“小字符串优化”的实现,即char[N]
对象本身内的小std::string
。这很可能与你的内存布局不兼容。