簡體   English   中英

可以在std :: ostream上使用std :: back_insert_iterator嗎?

[英]Can a std::back_insert_iterator be used on a std::ostream?

根據標題問題。

我假設答案是“不,因為std::back_insert_iterator對象在容器上調用push_back() 。”

如果答案實際上是no,那么我是否可以在我的模板函數中使用任何模板類迭代器來附加到std::string ,追加到std::vector<char> ,並寫入std::ostream

這就是std::ostream_iterator的用途:

#include <iostream>
#include <string>
#include <vector>
#include <iterator>
#include <algorithm>

int main()
{
    char c[] = { 'a', 'b', 'c', 'd' };

    std::vector<char> v;
    std::string s;

    std::copy(c, c+4, std::back_inserter(v));
    std::copy(c, c+4, std::back_inserter(s));
    std::copy(c, c+4, std::ostream_iterator<char>(std::cout));
}

DEMO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM