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