boost::split
和 boost::iter_split
函数有什么区别?
最佳答案
boost::split
将拆分后的字符串复制到 SequenceSequenceT
(例如 std::vector<std::string>
)。 boost::iter_split
地点 iterators
(特别是迭代器范围)到 SequenceSequenceT
.
这实际上意味着两件事:
使用
split
将创建拷贝,因此原始字符串不会看到对返回的字符串容器的任何更改。此外,您无需担心迭代器失效。使用
iter_split
将返回一个迭代器范围的容器,因此,修改这些迭代器指向的内容也会修改原始字符串。其次,如果在运行iter_split
后原始字符串被修改,您可能会遇到迭代器失效问题。但是,不会对底层字符串执行任何复制,因此这可能会运行得更快并且使用更少的内存。
关于c++ - boost::split 与 boost::iter_split 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20781090/