<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[for_each und ostreams]]></title><description><![CDATA[<p>hi,</p>
<p>ich möchte einen container mit for_each ausgeben. wie mach ich am geschicktesten das funktionsobjekt? einfach eine referenz auf den ostream speichern*? oder geht das irgendwie besser?</p>
<p>*also so in der art:</p>
<pre><code class="language-cpp">class printer
{
  private:
    std::ostream &amp; o;
  public:
    printer( std::ostream &amp;out )
      : o( out )
      {}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/134823/for_each-und-ostreams</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 17:37:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/134823.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 28 Jan 2006 23:07:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to for_each und ostreams on Sat, 28 Jan 2006 23:07:06 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>ich möchte einen container mit for_each ausgeben. wie mach ich am geschicktesten das funktionsobjekt? einfach eine referenz auf den ostream speichern*? oder geht das irgendwie besser?</p>
<p>*also so in der art:</p>
<pre><code class="language-cpp">class printer
{
  private:
    std::ostream &amp; o;
  public:
    printer( std::ostream &amp;out )
      : o( out )
      {}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/979407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/979407</guid><dc:creator><![CDATA[doppelmuffe]]></dc:creator><pubDate>Sat, 28 Jan 2006 23:07:06 GMT</pubDate></item><item><title><![CDATA[Reply to for_each und ostreams on Sat, 28 Jan 2006 23:13:03 GMT]]></title><description><![CDATA[<p>für sowas ist ostream_iterator und copy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/979417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/979417</guid><dc:creator><![CDATA[b7f7]]></dc:creator><pubDate>Sat, 28 Jan 2006 23:13:03 GMT</pubDate></item><item><title><![CDATA[Reply to for_each und ostreams on Sat, 28 Jan 2006 23:20:42 GMT]]></title><description><![CDATA[<p>b7f7 schrieb:</p>
<blockquote>
<p>für sowas ist ostream_iterator und copy</p>
</blockquote>
<p>entweder so oder allgemeiner</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;algorithm&gt;

using namespace std;

struct printer {
   void operator() (int i) {
      cout &lt;&lt; i &lt;&lt; &quot; &quot;;
   }
};

int main() {
   printer p;
   vector&lt;int&gt; v;
   v.push_back(1);
   v.push_back(2);
   v.push_back(3);
   v.push_back(4);
   for_each( v.begin(), v.end(), p );
}
</code></pre>
<p>Kurt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/979424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/979424</guid><dc:creator><![CDATA[ZuK]]></dc:creator><pubDate>Sat, 28 Jan 2006 23:20:42 GMT</pubDate></item><item><title><![CDATA[Reply to for_each und ostreams on Sat, 28 Jan 2006 23:51:53 GMT]]></title><description><![CDATA[<p>wenn du den stream als parameter haben wllst, dann kannst du es so machen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; 
#include &lt;vector&gt; 
#include &lt;algorithm&gt; 

using namespace std; 

class printer { 
   ostream &amp;out;

   public:
    printer (ostream &amp;o) : out(o) {}
   ~printer () {}

   void operator() (int i) { 
      out &lt;&lt; i &lt;&lt; &quot; &quot;; 
   } 
}; 

int main() { 
   vector&lt;int&gt; v; 
   v.push_back(1); 
   v.push_back(2); 
   v.push_back(3); 
   v.push_back(4); 
   for_each( v.begin(), v.end(), printer(cout)); // printer(cout) ist ein konstruktor-aufruf
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/979457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/979457</guid><dc:creator><![CDATA[Konfusius]]></dc:creator><pubDate>Sat, 28 Jan 2006 23:51:53 GMT</pubDate></item><item><title><![CDATA[Reply to for_each und ostreams on Sun, 29 Jan 2006 00:04:29 GMT]]></title><description><![CDATA[<p>du kannst auch member-templates benutzen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; 
#include &lt;vector&gt; 
#include &lt;algorithm&gt; 
#include &lt;string&gt;

using namespace std; 

class printer { 
   ostream &amp;out;

   public:
    printer (ostream &amp;o) : out(o) {}
   ~printer () {}

   template&lt;class T&gt;
   void operator() (T i) { 
      out &lt;&lt; i &lt;&lt; &quot; &quot;; 
   } 
}; 

int main() { 
   vector&lt;string&gt; v; 
   v.push_back(&quot;str1&quot;); 
   v.push_back(&quot;str2&quot;); 
   v.push_back(&quot;str3&quot;); 
   v.push_back(&quot;str4&quot;); 
   for_each( v.begin(), v.end(), printer(cout)); // printer(cout) ist ein konstruktor-aufruf
}
</code></pre>
<p>dann kannst du mit printer jeden datentyp ausgeben, für den ein &lt;&lt; operator definiert ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/979468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/979468</guid><dc:creator><![CDATA[Konfusius]]></dc:creator><pubDate>Sun, 29 Jan 2006 00:04:29 GMT</pubDate></item><item><title><![CDATA[Reply to for_each und ostreams on Sun, 29 Jan 2006 13:22:00 GMT]]></title><description><![CDATA[<p>ok, danke @all, habs jetzt so ähnlich gemacht.</p>
<p>b7f7 schrieb:</p>
<blockquote>
<p>für sowas ist ostream_iterator und copy</p>
</blockquote>
<p>? ostream_iterator ist klar, aber was soll &quot;copy&quot; bedeuten?<br />
edit: ach so, ja, ist klar</p>
]]></description><link>https://www.c-plusplus.net/forum/post/979681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/979681</guid><dc:creator><![CDATA[doppelmuffe]]></dc:creator><pubDate>Sun, 29 Jan 2006 13:22:00 GMT</pubDate></item><item><title><![CDATA[Reply to for_each und ostreams on Sun, 29 Jan 2006 13:17:43 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iterator&gt;
// ...
std::copy (v.begin (), v.end (), std::ostream_iterator&lt;char&gt; (o), std::ostream_iterator&lt;char&gt; ());
</code></pre>
<p>Mit o als deinen eigenen ostream.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/979751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/979751</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Sun, 29 Jan 2006 13:17:43 GMT</pubDate></item><item><title><![CDATA[Reply to for_each und ostreams on Sun, 29 Jan 2006 14:10:25 GMT]]></title><description><![CDATA[<p>.filmor schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#include &lt;iterator&gt;
// ...
std::copy (v.begin (), v.end (), std::ostream_iterator&lt;char&gt; (o), std::ostream_iterator&lt;char&gt; ());
</code></pre>
</blockquote>
<p>Es gibt kein copy mit 4 Parametern. Und wenn es dies gäbe, wäre der 4. redundant.</p>
<pre><code class="language-cpp">#include &lt;algorithm&gt;    // std::copy
#include &lt;iterator&gt;     // std::ostream_iterator
// ...
std::copy( v.begin(), v.end(), std::ostream_iterator&lt; char &gt;( o ) ); // o ist ein std::ostream
</code></pre>
<p>.. reicht aus.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/979803</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/979803</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Sun, 29 Jan 2006 14:10:25 GMT</pubDate></item></channel></rss>