草庐IT

ostream_iterator

全部标签

c++ - 为什么不推荐使用 std::iterator ?

模板类std::iterator在C++17中设置为弃用。为什么这样?这是确保std::iterator_traits的便捷方法。有效,特别是如果您可以使用默认模板参数。在C++17中还有其他方法吗? 最佳答案 来自theproposalthatsuggesteditsdeprecation:Asanaidtowritingiteratorclasses,theoriginalstandardlibrarysuppliedtheiteratorclasstemplatetoautomatethedeclarationofthefiv

c++ - 为什么 std::ostream 这么慢?

我正在研究一个简单的解析器,在分析时我观察到瓶颈在于...文件读取!我提取了非常简单的测试来比较fstreams和FILE*在读取大量数据时的性能:#include#include#include#include#includevoidmeasure(conststd::string&test,std::functionfunction){autostart_time=std::chrono::high_resolution_clock::now();function();autoduration=std::chrono::duration_cast(std::chrono::high

c++ - 重载运算符<< : cannot bind lvalue to ‘std::basic_ostream<char>&&’

我有一个使用嵌套类的类,并且想使用嵌套类operator定义operator在上层类(Class)。这是我的代码的样子:#include#includetemplatestructclassA{structclassB{templatefriendinlinestd::ostream&operator::classB&b);};classBroot;templatefriendstd::ostream&operator&tree);};templateinlinestd::ostream&operator&tree){outinlinestd::ostream&operator::cl

C++ 流混淆 : istreambuf_iterator vs istream_iterator?

istreambuf_iterator和istream_iterator有什么区别?一般来说,流和流缓冲区有什么区别?我真的找不到任何明确的解释,所以决定在这里问。 最佳答案 IOstreams使用streambufs作为输入/输出的源/目标。实际上,streambuf-family完成了有关IO的所有工作,而IOstream-family仅用于格式化和to-string/from-string转换。现在,istream_iterator接受一个模板参数,该参数说明来自streambuf的未格式化字符串序列应该被格式化为什么格式,例

c++ - 如何删除 const_iterator 的常量?

作为这个问题的延伸Areconst_iteratorsfaster?,我还有一个关于const_iterators的问题.如何删除const_iterator的常量?虽然迭代器是指针的广义形式,但仍然是const_iterator和iterators是两个不同的东西。因此,我相信,我也不能使用const_cast隐藏const_iterator至iterator秒。一种方法是定义一个迭代器,它移动'直到const_iterator的元素。点。但这看起来是一个线性时间算法。您知道实现这一目标的最佳方法是什么吗? 最佳答案 在C++11

c++ - C++ 或库中是否有空 std::ostream 实现?

我正在寻找一个类似于/dev/null的std::ostream实现。它只会忽略流向它的任何内容。标准库或Boost中是否存在这样的东西?还是我必须自己动手? 最佳答案 如果您有boost,那么boost/iostreams/device/null.hpp中有一个nullostream和istream实现。要点:#include"boost/iostreams/stream.hpp"#include"boost/iostreams/device/null.hpp"...boost::iostreams::streamnullOstr

c++ - 为什么 std::ostream 不能移动?

显然,流无法复制。应该可以移动流。根据27.9.1.11[ofstream.cons]第4段,可以移动构造一个std::ofstream(对于std::ifstream也是如此,std::fstream和std::*stringstream变体)。例如:#include#include#includestd::ofstreammakeStream(std::stringconst&name){returnstd::ofstream(name);}intmain(){std::ofstreamout{makeStream("example.log")};}尝试移动std::ostream

c++ - 用 vector::iterator 或 at() 迭代 STL vector 有什么更快的方法?

在性能方面,什么会更快?有区别吗?它依赖于平台吗?//1.Usingvector::iterator:vectorvs=GetVector();for(vector::iteratorit=vs.begin();it!=vs.end();++it){*it="AmIfaster?";}//2.Usingsize_tindex:for(size_ti=0;i 最佳答案 使用迭代器会导致指针递增(用于递增)和解引用导致解引用指针。使用索引,递增应该同样快,但查找元素涉及添加(数据指针+索引)和取消引用该指针,但差异应该是微不足道的。at

c++ - 准备废弃 std::iterator

3月21日st,标准委员会投票批准了弃用std::iterator。建议于P0174:Thelongsequenceofvoidargumentsismuchlesscleartothereaderthansimplyprovidingtheexpectedtypedefsintheclassdefinitionitself,whichistheapproachtakenbythecurrentworkingdraft,followingthepatternsetinc++14在c++17之前鼓励从std::iterator继承以消除迭代器样板实现中的乏味。但弃用将需要以下条件之一:迭

c++ - 将 ostream 转换为标准字符串

我对C++STL很陌生,所以这可能是微不足道的。我有一个ostream变量,其中包含一些文本。ostream*pout;(*pout)有没有办法提取流并将其存储在char*类型的字符串中? 最佳答案 问题是关于ostream到字符串,不是ostringstream到字符串。对于那些有兴趣回答实际问题的人(特定于ostream),试试这个:voidsomeFunc(std::ostreamout){std::stringstreamss;ss 关于c++-将ostream转换为标准字符串,