<?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[Iterator Methode Copy]]></title><description><![CDATA[<p>Hallo, habe folgendes Problem:</p>
<pre><code class="language-cpp">//Iter.h

#include &lt;vector&gt;
#include &lt;iterator&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

template &lt;class IterType&gt;
void print(IterType first, IterType last) {
	cout &lt;&lt; &quot;Huzel: | &quot;;
	while(first != last) {
		cout &lt;&lt; *first++ &lt;&lt; &quot; | &quot;;
	}
}

template &lt;class IterType, class ValueType&gt;
void modify(IterType first, IterType last, ValueType val) {
	while(first != last) {
		*first++ = val;
	}
}

template &lt;class InIterType, class OutIterType&gt;
void copy(InIterType first, InIterType last, OutIterType result) {
	while(first != last) {
		*result++ = *first++;
	}
}
</code></pre>
<pre><code class="language-cpp">// IteratorExample.cpp

#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;list&gt;
#include &quot;Iter.h&quot;
using namespace std;

int main() {

	vector&lt;int&gt; data;
	data.push_back(1);
	data.push_back(42);

	print(data.begin(), data.end());
	modify(data.begin(), data.end(), 42);

	int length = data.size();

	list&lt;int&gt; dest(length);
	copy(data.begin(), data.end(), dest.begin());

	return 0;
}
</code></pre>
<p>Bekomme beim Aufruf der Methode copy(...) eine Fehlermeldung und weiss leider nicht diese zu lösen.</p>
<p>&quot;call of overloaded 'copy(__gnu_cxx::__normal_iterator&lt;int*, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt;, __gnu_cxx::__normal_iterator&lt;int*, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt;, std::_List_iterator&lt;int&gt;)' is ambiguous&quot;</p>
<p>^^Kann mir da jmd freundlicherweise helfen? Die anderen zwei Methoden funktionieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Vielen Dank<br />
O51</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/259445/iterator-methode-copy</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 18:58:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/259445.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 23 Jan 2010 09:58:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Iterator Methode Copy on Sat, 23 Jan 2010 09:58:20 GMT]]></title><description><![CDATA[<p>Hallo, habe folgendes Problem:</p>
<pre><code class="language-cpp">//Iter.h

#include &lt;vector&gt;
#include &lt;iterator&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

template &lt;class IterType&gt;
void print(IterType first, IterType last) {
	cout &lt;&lt; &quot;Huzel: | &quot;;
	while(first != last) {
		cout &lt;&lt; *first++ &lt;&lt; &quot; | &quot;;
	}
}

template &lt;class IterType, class ValueType&gt;
void modify(IterType first, IterType last, ValueType val) {
	while(first != last) {
		*first++ = val;
	}
}

template &lt;class InIterType, class OutIterType&gt;
void copy(InIterType first, InIterType last, OutIterType result) {
	while(first != last) {
		*result++ = *first++;
	}
}
</code></pre>
<pre><code class="language-cpp">// IteratorExample.cpp

#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;list&gt;
#include &quot;Iter.h&quot;
using namespace std;

int main() {

	vector&lt;int&gt; data;
	data.push_back(1);
	data.push_back(42);

	print(data.begin(), data.end());
	modify(data.begin(), data.end(), 42);

	int length = data.size();

	list&lt;int&gt; dest(length);
	copy(data.begin(), data.end(), dest.begin());

	return 0;
}
</code></pre>
<p>Bekomme beim Aufruf der Methode copy(...) eine Fehlermeldung und weiss leider nicht diese zu lösen.</p>
<p>&quot;call of overloaded 'copy(__gnu_cxx::__normal_iterator&lt;int*, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt;, __gnu_cxx::__normal_iterator&lt;int*, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt;, std::_List_iterator&lt;int&gt;)' is ambiguous&quot;</p>
<p>^^Kann mir da jmd freundlicherweise helfen? Die anderen zwei Methoden funktionieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Vielen Dank<br />
O51</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843589</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843589</guid><dc:creator><![CDATA[bla blub]]></dc:creator><pubDate>Sat, 23 Jan 2010 09:58:20 GMT</pubDate></item><item><title><![CDATA[Reply to Iterator Methode Copy on Sat, 23 Jan 2010 10:07:05 GMT]]></title><description><![CDATA[<p>Steht doch da: Deine eigene copy-Mehode beißt sich mit der aus std::.<br />
Also umbenennen oder in einen eigenen namespace packen oder nicht using namespace std;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843592</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or_off]]></dc:creator><pubDate>Sat, 23 Jan 2010 10:07:05 GMT</pubDate></item><item><title><![CDATA[Reply to Iterator Methode Copy on Sat, 23 Jan 2010 10:19:20 GMT]]></title><description><![CDATA[<p>Ich würde eher vorschlagen, <code>Iter.h</code> zu eliminieren und die Standardbibliothek zu benutzen:<br />
<a href="http://www.cplusplus.com/reference/algorithm/copy/" rel="nofollow">http://www.cplusplus.com/reference/algorithm/copy/</a><br />
<a href="http://www.cplusplus.com/reference/algorithm/fill/" rel="nofollow">http://www.cplusplus.com/reference/algorithm/fill/</a><br />
<a href="http://www.cplusplus.com/reference/std/iterator/ostream_iterator/" rel="nofollow">http://www.cplusplus.com/reference/std/iterator/ostream_iterator/</a></p>
<p>Auf der anderen Seite ist es natürlich ein schönes Beispiel für die unachtsame Verwendung von <code>using namespace std</code> . <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843595</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 23 Jan 2010 10:19:20 GMT</pubDate></item><item><title><![CDATA[Reply to Iterator Methode Copy on Sat, 23 Jan 2010 10:31:21 GMT]]></title><description><![CDATA[<p>l'abra d'or_off schrieb:</p>
<blockquote>
<p>Steht doch da: Deine eigene copy-Mehode beißt sich mit der aus std::.<br />
Also umbenennen oder in einen eigenen namespace packen oder nicht using namespace std;</p>
</blockquote>
<p>Vielen Dank für die schnelle Antwort, läuft nun! Habe noch etwas Probleme die Fehlermeldungen zu lesen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843600</guid><dc:creator><![CDATA[bla blub]]></dc:creator><pubDate>Sat, 23 Jan 2010 10:31:21 GMT</pubDate></item><item><title><![CDATA[Reply to Iterator Methode Copy on Sat, 23 Jan 2010 10:39:05 GMT]]></title><description><![CDATA[<p>bla blub schrieb:</p>
<blockquote>
<p>l'abra d'or_off schrieb:</p>
<blockquote>
<p>Steht doch da: Deine eigene copy-Mehode beißt sich mit der aus std::.<br />
Also umbenennen oder in einen eigenen namespace packen oder nicht using namespace std;</p>
</blockquote>
<p>Vielen Dank für die schnelle Antwort, läuft nun! Habe noch etwas Probleme die Fehlermeldungen zu lesen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p>Das ist normal am Anfang.<br />
Kleiner Tipp. Probier zuerst nur mal den richtigen Text zu lesen. Das was da an Code steht ist oftmals sehr lange und nicht von Interesse.<br />
Extrahieren wir das mal an dem Beispiel:</p>
<blockquote>
<p>call of overloaded 'copy' is ambiguous</p>
</blockquote>
<p>Dann weisst du schon mal, dass da ein Konflikt besteht. Und nun kannst du falls dir nicht einfällt welche Methoden das verursachen kannst du den Code probieren anzuschauen. (Unter Visual Studio werden dir die genauen Vorschläge dann auch noch aufgelistet).<br />
Und auch wenn du den Code nicht verstehst/deuten kannst, dann kommst du nicht herum einen anderen Namespace zu wählen und das Problem ist gelöst (sofern du natürlich dann den Namensraum std ausschliest (zumindest implizit))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843603</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843603</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 23 Jan 2010 10:39:05 GMT</pubDate></item><item><title><![CDATA[Reply to Iterator Methode Copy on Sat, 23 Jan 2010 10:44:32 GMT]]></title><description><![CDATA[<p>Ganz böse vor allem: &quot;using namespace std;&quot; in der Header-Datei!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843607</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Sat, 23 Jan 2010 10:44:32 GMT</pubDate></item><item><title><![CDATA[Reply to Iterator Methode Copy on Sat, 23 Jan 2010 11:05:02 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Das ist normal am Anfang.<br />
Kleiner Tipp. Probier zuerst nur mal den richtigen Text zu lesen. Das was da an Code steht ist oftmals sehr lange und nicht von Interesse.<br />
Extrahieren wir das mal an dem Beispiel:</p>
<blockquote>
<p>call of overloaded 'copy' is ambiguous</p>
</blockquote>
<p>Dann weisst du schon mal, dass da ein Konflikt besteht. Und nun kannst du falls dir nicht einfällt welche Methoden das verursachen kannst du den Code probieren anzuschauen. (Unter Visual Studio werden dir die genauen Vorschläge dann auch noch aufgelistet).<br />
Und auch wenn du den Code nicht verstehst/deuten kannst, dann kommst du nicht herum einen anderen Namespace zu wählen und das Problem ist gelöst (sofern du natürlich dann den Namensraum std ausschliest (zumindest implizit))</p>
</blockquote>
<p>Hab den Code auf die beschriebene Art auch versucht zu deuten, bin aber nicht drauf gekommen, das copy im namespace std schon vorhanden ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Programmiere eben sehr selten und mit Eclipse (ja, ich weiss), da ich nen Mac Rechner habe. VisualStudio über VM is auch kagge, da die Win Lib fehlt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843616</guid><dc:creator><![CDATA[bla blub]]></dc:creator><pubDate>Sat, 23 Jan 2010 11:05:02 GMT</pubDate></item><item><title><![CDATA[Reply to Iterator Methode Copy on Sat, 23 Jan 2010 11:12:46 GMT]]></title><description><![CDATA[<p>Im Zweifelsfall gibt <a href="http://www.cplusplus.com/reference/" rel="nofollow">da</a> einfach mal copy ein. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>/EDIT<br />
Im übrigen sollte so ein Fehler gar nicht erst passieren, weil eben, wenn du nämlich das &quot;böse&quot; <code>using namespace</code> im Header nicht hättest, dann hättest du das Problem auch nicht gehabt. Vor allem gehört es ja auch zum guten Stil, dass man seine eigenen Sachen in einen Namensraum packt und dann hat man solche Probleme auch gar nicht erst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843619</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 23 Jan 2010 11:12:46 GMT</pubDate></item><item><title><![CDATA[Reply to Iterator Methode Copy on Sat, 23 Jan 2010 13:21:54 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Im Zweifelsfall gibt <a href="http://www.cplusplus.com/reference/" rel="nofollow">da</a> einfach mal copy ein. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>/EDIT<br />
Im übrigen sollte so ein Fehler gar nicht erst passieren, weil eben, wenn du nämlich das &quot;böse&quot; <code>using namespace</code> im Header nicht hättest, dann hättest du das Problem auch nicht gehabt. Vor allem gehört es ja auch zum guten Stil, dass man seine eigenen Sachen in einen Namensraum packt und dann hat man solche Probleme auch gar nicht erst.</p>
</blockquote>
<p>^^ich danke euch nochmal recht herzlich. Super das mir hier so schnell geholfen werden konnte. Man (bzw ich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> ) denkt halt nicht immer so umfangreich, wenn man vom Prof die Aufgabe gekommt, nur mal schnell ne Methode zu schreiben. Aber nun weiss ich auch, worauf er evtl hinaus wollte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843697</guid><dc:creator><![CDATA[bla blub]]></dc:creator><pubDate>Sat, 23 Jan 2010 13:21:54 GMT</pubDate></item><item><title><![CDATA[Reply to Iterator Methode Copy on Mon, 25 Jan 2010 12:23:19 GMT]]></title><description><![CDATA[<p>Wie meine Vorredner schon sagten kannst du einfach die STL benutzen.</p>
<p>- deine copy Funktion ist eigentlich std::copy<br />
- deine print Funktion lässt sich über std::copy und ostream iterator lösen<br />
- deine modify Funktion lässt sich über std::transform lösen</p>
<p>Btw:<br />
Ich glaube alle linearen STL Container bieten einen Konstruktor an, der ein Paar iteratoren als Argumente akzeptiert.</p>
<pre><code class="language-cpp">// Statt
std::list&lt;int&gt; output( size );
std::copy( input.begin(), input.end(), output.end() );

// besser
std::list&lt;int&gt; output( input.begin(), input.end() );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1844468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1844468</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Mon, 25 Jan 2010 12:23:19 GMT</pubDate></item><item><title><![CDATA[Reply to Iterator Methode Copy on Mon, 25 Jan 2010 12:36:39 GMT]]></title><description><![CDATA[<p>Th69 schrieb:</p>
<blockquote>
<p>Ganz böse vor allem: &quot;using namespace std;&quot; in der Header-Datei!</p>
</blockquote>
<p>Das möchte ich auch nochmal unterstreichen. Ein &quot;using namespace std;&quot; hat in Header-Dateien nichts zu suchen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1844473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1844473</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Mon, 25 Jan 2010 12:36:39 GMT</pubDate></item></channel></rss>