<?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[std:: vector -&amp;gt; index eines gegebenen Elements?]]></title><description><![CDATA[<p>Hallo gibt es eine bessere Lösung als das durchiterieren und den Vergleich mit jedem Element im Vector um den Index eines gegebenen Elementes zu finden?</p>
<p>Gruß HaJo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/168370/std-vector-gt-index-eines-gegebenen-elements</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 08:37:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/168370.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 21 Dec 2006 11:38:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std:: vector -&amp;gt; index eines gegebenen Elements? on Thu, 21 Dec 2006 11:38:21 GMT]]></title><description><![CDATA[<p>Hallo gibt es eine bessere Lösung als das durchiterieren und den Vergleich mit jedem Element im Vector um den Index eines gegebenen Elementes zu finden?</p>
<p>Gruß HaJo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1196018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196018</guid><dc:creator><![CDATA[Hajo32]]></dc:creator><pubDate>Thu, 21 Dec 2006 11:38:21 GMT</pubDate></item><item><title><![CDATA[Reply to std:: vector -&amp;gt; index eines gegebenen Elements? on Thu, 21 Dec 2006 11:42:23 GMT]]></title><description><![CDATA[<p>Ist der vector vorsortiert? Wenn ja, könntest du zumindest die Suchzeit drücken <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1196023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196023</guid><dc:creator><![CDATA[viande @ work]]></dc:creator><pubDate>Thu, 21 Dec 2006 11:42:23 GMT</pubDate></item><item><title><![CDATA[Reply to std:: vector -&amp;gt; index eines gegebenen Elements? on Thu, 21 Dec 2006 12:00:11 GMT]]></title><description><![CDATA[<p>Wenn der vector unsortiert ist, könntest du auch std::find() verwenden (gut, das macht auch nichts anderes als durchiterieren und vergleichen, aber ist kürzer zu schreiben), bei einem sortierten vector bietet sich std::lower_bound() an (das verwendet binäre Suche, ist also ein Stück schneller).</p>
<p>Beide Funktionen liefern einen Iterator auf das gefundene Element - indem du vec.begin() davon abziehst, kommst du zu deinem Index.</p>
<p>PS: Und wenn du den vector einmal aufbaust und dann sehr oft darin suchen willst, sortier ihn lieber.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1196037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196037</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 21 Dec 2006 12:00:11 GMT</pubDate></item><item><title><![CDATA[Reply to std:: vector -&amp;gt; index eines gegebenen Elements? on Thu, 21 Dec 2006 12:29:08 GMT]]></title><description><![CDATA[<p>Nein nicht vorsortiert, es ist in Standartvector der stl.</p>
<pre><code>#include &lt;vector&gt;
using namespace std;
.
.
.
vector &lt;MyClass*&gt;* pVec;
.
.
.
</code></pre>
<p>Es werden unsortiert eigene Objekte reingepackt.</p>
<p>Es geht mir weniger um die Geschiwindigkeit, als um die Frage ob ich vielleicht eine einfache Methode getIndexOf() übersehen habe.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1196039</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196039</guid><dc:creator><![CDATA[Hajo32]]></dc:creator><pubDate>Thu, 21 Dec 2006 12:29:08 GMT</pubDate></item><item><title><![CDATA[Reply to std:: vector -&amp;gt; index eines gegebenen Elements? on Thu, 21 Dec 2006 12:08:07 GMT]]></title><description><![CDATA[<p>danke! Die Methode find() hatte ich noch im Hinterkopf, mir war aber nicht klar, dass ich durch einfaches Abziehen von pVec-&gt;begin() auf den Index komme!!!</p>
<p>Das Sortieren ist in meinem Fall nicht möglich, da die Reihenfolge der Elemente im Vektor ständig umsortiert werden muss und für die Lösung der Aufgabe wichtig ist.</p>
<p>Ihr wart mir eine große Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1196045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196045</guid><dc:creator><![CDATA[Hajo32]]></dc:creator><pubDate>Thu, 21 Dec 2006 12:08:07 GMT</pubDate></item><item><title><![CDATA[Reply to std:: vector -&amp;gt; index eines gegebenen Elements? on Thu, 21 Dec 2006 12:11:49 GMT]]></title><description><![CDATA[<p>Hajo32 schrieb:</p>
<blockquote>
<p>Nein nicht vorsortiert, es ist in Standartvector der stl.</p>
</blockquote>
<p>Auch einen vector kann man sortiert halten <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>Und wenn dir die Suchschleife zu viel Schreibarbeit ist, mach es mit find (eventuell auch mit find_if):</p>
<pre><code class="language-cpp">vector&lt;MyClass*&gt;::iterator pos=find(pVec.begin(),pVec.end(),SampleData);
if(pos==pVec.end())
  cout&lt;&lt;&quot;nicht gefunden&quot;&lt;&lt;endl;
else
  cout&lt;&lt;&quot;gefunden an Index &quot;&lt;&lt;pos-pVec.begin()&lt;&lt;endl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1196049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196049</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 21 Dec 2006 12:11:49 GMT</pubDate></item></channel></rss>