从未结束的STD库迭代器?

时间:2014-06-16 02:03:54

标签: c++ string iterator

是否有一个字符串缓冲区类,它提供了一个迭代器,如果需要在递增(*++itr = 'x')时分配一个新缓冲区,或者我是否先停用预分配缓冲区?

2 个答案:

答案 0 :(得分:6)

有一种名为std::back_inserter()的内容,每次分配时都会调用push_back()。一些示例代码:

int main() {
    string s = "abc";
    auto it = std::back_inserter(s);
    it = 'd';
    cout << s << endl;
    return 0;
}

将打印出来:abcd

答案 1 :(得分:1)

您可以将std::ostringstreamstd::ostream_inserter一起使用,类似这样(未经测试):

std:::ostringstream stream;
auto itr = ostream_inserter<char>(stream);