<?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[vector &amp;amp; iterator]]></title><description><![CDATA[<p>Hi,</p>
<p>wie kann ich aus einem vector ein beliebiges Element löschen? Ich verstehe die Iteratoren nicht so ganz :(:</p>
<p>mein_vector besteht aus Pointern einer anderen Klasse.</p>
<pre><code>for(unsigned int i=0; i &lt; mein_vector.size(); i++)
	{
		if (irgendeine Bedingung)
		{		
            mein_vector.erase( ??? ));
			delete mein_vector[i];		
			break;
		}
	}
</code></pre>
<p>Wie muss ich jetzt den Iterator (wo ??? steht) erzeugen, damit er auf die Position i zeigt? Oder reicht das delete aus um das Element zu löschen?</p>
<p>Und eine 2. Frage hätte ich noch:</p>
<p>Gibt es in C++ einen ganzzahligen Datentyp der größer ist als &quot;unsigned long&quot;? Konkret geht es mir darum eine 12stellige ganze Zahl darzustellen?</p>
<p>mfg,<br />
soad</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/179429/vector-amp-iterator</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 06:20:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/179429.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 21 Apr 2007 15:28:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to vector &amp;amp; iterator on Sat, 21 Apr 2007 15:30:03 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>wie kann ich aus einem vector ein beliebiges Element löschen? Ich verstehe die Iteratoren nicht so ganz :(:</p>
<p>mein_vector besteht aus Pointern einer anderen Klasse.</p>
<pre><code>for(unsigned int i=0; i &lt; mein_vector.size(); i++)
	{
		if (irgendeine Bedingung)
		{		
            mein_vector.erase( ??? ));
			delete mein_vector[i];		
			break;
		}
	}
</code></pre>
<p>Wie muss ich jetzt den Iterator (wo ??? steht) erzeugen, damit er auf die Position i zeigt? Oder reicht das delete aus um das Element zu löschen?</p>
<p>Und eine 2. Frage hätte ich noch:</p>
<p>Gibt es in C++ einen ganzzahligen Datentyp der größer ist als &quot;unsigned long&quot;? Konkret geht es mir darum eine 12stellige ganze Zahl darzustellen?</p>
<p>mfg,<br />
soad</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1270642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1270642</guid><dc:creator><![CDATA[soad]]></dc:creator><pubDate>Sat, 21 Apr 2007 15:30:03 GMT</pubDate></item><item><title><![CDATA[Reply to vector &amp;amp; iterator on Sat, 21 Apr 2007 15:36:44 GMT]]></title><description><![CDATA[<p>mein_vector.begin()+i</p>
<p>EDIT: öhm, delete ist nur für mit new angelegte Sachen, dessen bist du dir bewusst, ja? Alles andere wird automatisch ordentlich aufgeräumt, ohne erase und ohne delete.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1270649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1270649</guid><dc:creator><![CDATA[Shinja]]></dc:creator><pubDate>Sat, 21 Apr 2007 15:36:44 GMT</pubDate></item><item><title><![CDATA[Reply to vector &amp;amp; iterator on Sat, 21 Apr 2007 15:38:31 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">vector&lt;myType*&gt; my_vector(10); //dein vektor mit zeigern auf die objekte
vector&lt;myType*&gt;::iterator i; //der passende iterator

myType* pMyObject=new myType(); //dein objekt auf heap erzeugen
my_vector.push_back(pMyObject);  //zeiger in den vektor schreiben

//alle objekte in einer schleife löschen:
for(i=my_vector.begin(); i!=my_vector.end(); i++){
  delete *i; // *i liefert zeiger, delete entfernt das objekt
}
my_vector.clear(); //löscht alle zeiger
</code></pre>
<p>zu unsigned long: nein, das größte was es bei normalen PC's gibt ist 2^32 , wenn du es genauer haben willst, brauchst du einen superrechner.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1270651</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1270651</guid><dc:creator><![CDATA[Andrey]]></dc:creator><pubDate>Sat, 21 Apr 2007 15:38:31 GMT</pubDate></item><item><title><![CDATA[Reply to vector &amp;amp; iterator on Sat, 21 Apr 2007 15:40:39 GMT]]></title><description><![CDATA[<p>super, danke Shinja &amp; Andrey !!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1270653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1270653</guid><dc:creator><![CDATA[soad]]></dc:creator><pubDate>Sat, 21 Apr 2007 15:40:39 GMT</pubDate></item><item><title><![CDATA[Reply to vector &amp;amp; iterator on Sun, 22 Apr 2007 11:32:35 GMT]]></title><description><![CDATA[<p>Andrey schrieb:</p>
<blockquote>
<p>zu unsigned long: nein, das größte was es bei normalen PC's gibt ist 2^32 , wenn du es genauer haben willst, brauchst du einen superrechner.</p>
</blockquote>
<p>Ach Quatsch. <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 />
Jeder &quot;normale&quot; (32-Bit-Architektur) Rechner hat auch Unterstützung für größere Ganzzahl-Datentypen. Die sind lediglich in C++ nicht standardisiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1271038</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1271038</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Sun, 22 Apr 2007 11:32:35 GMT</pubDate></item><item><title><![CDATA[Reply to vector &amp;amp; iterator on Sun, 22 Apr 2007 11:41:08 GMT]]></title><description><![CDATA[<p>okay... ich muss wie immer zugeben, dass ich kein spezialist auf diesem gebiet bin. Aber wenn ich mir so die assembler befehle für meinen rechner anschaue, dann sieht es für mich danach aus, als ob da nur begrenzt viel platz in den registern vorhanden ist, die direkt an der ALU hängen... und imho können da viel größere zahlen auch nicht reinpassen... oder? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1271044</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1271044</guid><dc:creator><![CDATA[Andrey]]></dc:creator><pubDate>Sun, 22 Apr 2007 11:41:08 GMT</pubDate></item><item><title><![CDATA[Reply to vector &amp;amp; iterator on Sun, 22 Apr 2007 11:58:30 GMT]]></title><description><![CDATA[<p>@ Andrey: hängt doch nich von den registergroessen ab.</p>
<p>@ soad: bei den meisten compilern gibts unsingned long long (8 bytes), und für beliebig grosse zahlen schau dir mal std::bitset oder std::vector&lt;bool&gt; an (weiss nichmehr was da besser geeignet is).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1271054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1271054</guid><dc:creator><![CDATA[wolfi wendel]]></dc:creator><pubDate>Sun, 22 Apr 2007 11:58:30 GMT</pubDate></item><item><title><![CDATA[Reply to vector &amp;amp; iterator on Sun, 22 Apr 2007 12:16:54 GMT]]></title><description><![CDATA[<p>Hi !</p>
<p>Andrey schrieb:</p>
<blockquote>
<p>... und imho können da viel größere zahlen auch nicht reinpassen... oder? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Genau, größere Zahlen passen da nicht rein. In das Register eines 32 Bit Rechners kann man maximal die Ganzzahl 4294967295 reinpacken.<br />
Man kann aber eine Zahl auf mehrere Register verteilen und so mit größeren Zahlen rechnen.</p>
<p>Andrey schrieb:</p>
<blockquote>
<p>Gibt es in C++ einen ganzzahligen Datentyp der größer ist als &quot;unsigned long&quot;? Konkret geht es mir darum eine 12stellige ganze Zahl darzustellen?</p>
</blockquote>
<p>In C++ weiss ich nicht, aber der erweiterte ANSI C-Standard (ANSI C99), hat<br />
einen schnuckeligen Datentypen unsigned long long mit 8 byte, mit dem kannst du<br />
eine Zahl von 0 bis 18446744073709551615 darstellen ( satt mehr als 12 Stellen, die du brauchst ).</p>
<p>Wenns nicht unbedingt ganzzahlig sein muss, könntest du ja auch float oder double nehmen.<br />
Gruß,<br />
p.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1271067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1271067</guid><dc:creator><![CDATA[proggingmania]]></dc:creator><pubDate>Sun, 22 Apr 2007 12:16:54 GMT</pubDate></item><item><title><![CDATA[Reply to vector &amp;amp; iterator on Sun, 22 Apr 2007 12:21:19 GMT]]></title><description><![CDATA[<p>na gut, schon klar, wenn man es sehr genau braucht, dann kann man die zahl auf einem megabyte im RAM verteilen, und dann stück für stück damit rechnen... Aber der rechner macht es dann nicht mehr &quot;in einem rutsch&quot;, da braucht man schon n paar mnemonics mehr, als einfach nur &quot;add&quot;...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1271069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1271069</guid><dc:creator><![CDATA[Andrey]]></dc:creator><pubDate>Sun, 22 Apr 2007 12:21:19 GMT</pubDate></item><item><title><![CDATA[Reply to vector &amp;amp; iterator on Sun, 22 Apr 2007 18:53:54 GMT]]></title><description><![CDATA[<p>danke, bezgl unsigned long long! ist das quasi auch ein standard datentyp der überall vorhanden ist, also sowohl windows als auch unix?</p>
<p>und __int64 ist das ein spezieller 64bit datentyp oder ist das windows spezifisch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1271354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1271354</guid><dc:creator><![CDATA[soad]]></dc:creator><pubDate>Sun, 22 Apr 2007 18:53:54 GMT</pubDate></item></channel></rss>