<?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[STL: vector mit vector vergleichen]]></title><description><![CDATA[<p>Hallo</p>
<p>ich wuerde gerne zwei vectoren miteinander vergleichen. Der eine enthaelt Punkt-Objekte, der andere Indizes. Jetzt wuerde ich gerne alle Punkte, die an den jeweiligen Indizes stehen, rausholen und in einem neuen vector speichern. Bis jetzt habe ich das so gemacht:</p>
<pre><code class="language-cpp">vector&lt;PointN&gt; getIndexPoints(vector&lt;PointN&gt;&amp; vPoints, vector&lt;int&gt;&amp; vInds)
{
	vector&lt;PointN&gt; vClusterPoints;
	for(unsigned int j = 0; j &lt; vInds.size(); j++)
	{
		for(unsigned int i = 0; i &lt; vPoints.size(); i++)
		{
			int ind = vInds[j];
			if(i == ind)
			{
				PointN store = vPoints[i];
				vClusterPoints.push_back(store);
			}
		}
	}
	return vClusterPoints;
}
</code></pre>
<p>Das ist allerdings extrem langsam fuer viele Punkte und ich wollte mal wissen ob das besser geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/134347/stl-vector-mit-vector-vergleichen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 13:28:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/134347.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 25 Jan 2006 13:49:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to STL: vector mit vector vergleichen on Wed, 25 Jan 2006 13:49:59 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>ich wuerde gerne zwei vectoren miteinander vergleichen. Der eine enthaelt Punkt-Objekte, der andere Indizes. Jetzt wuerde ich gerne alle Punkte, die an den jeweiligen Indizes stehen, rausholen und in einem neuen vector speichern. Bis jetzt habe ich das so gemacht:</p>
<pre><code class="language-cpp">vector&lt;PointN&gt; getIndexPoints(vector&lt;PointN&gt;&amp; vPoints, vector&lt;int&gt;&amp; vInds)
{
	vector&lt;PointN&gt; vClusterPoints;
	for(unsigned int j = 0; j &lt; vInds.size(); j++)
	{
		for(unsigned int i = 0; i &lt; vPoints.size(); i++)
		{
			int ind = vInds[j];
			if(i == ind)
			{
				PointN store = vPoints[i];
				vClusterPoints.push_back(store);
			}
		}
	}
	return vClusterPoints;
}
</code></pre>
<p>Das ist allerdings extrem langsam fuer viele Punkte und ich wollte mal wissen ob das besser geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/975968</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/975968</guid><dc:creator><![CDATA[Samo]]></dc:creator><pubDate>Wed, 25 Jan 2006 13:49:59 GMT</pubDate></item><item><title><![CDATA[Reply to STL: vector mit vector vergleichen on Wed, 25 Jan 2006 14:00:07 GMT]]></title><description><![CDATA[<p>Da du in sowieso nur einmal pro Durchlauf der inneren Schleife die if-Bedingung erfüllst, kannst du die Schleife eigentlich auch weglassen:</p>
<pre><code class="language-cpp">for(int i=0;i&lt;vInds.size();++i)
  if(vInds[i]&lt;vPoints.size())
    vCluster.push_back(vPoints[vInds[i&rsqb;&rsqb;);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/975981</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/975981</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Wed, 25 Jan 2006 14:00:07 GMT</pubDate></item><item><title><![CDATA[Reply to STL: vector mit vector vergleichen on Wed, 25 Jan 2006 14:03:48 GMT]]></title><description><![CDATA[<p>Hmmmm, wenn ich das richtig sehe, brauchst du doch die innere Schleife gar nicht. Du verwendest vInds[j] (indirekt) für den Zugriff auf vPoints. Also müsste das hier genauso gehen:</p>
<pre><code class="language-cpp">vector&lt;PointN&gt; getIndexPoints(vector&lt;PointN&gt;&amp; vPoints, vector&lt;int&gt;&amp; vInds)
{
    vector&lt;PointN&gt; vClusterPoints;
    size_t pointsSize = vPoints.size();
    size_t intsSize = vInds.size()
    for(unsigned int j = 0; j &lt; intsSize; j++)
    {
        int ind = vInds[j];
        if(ind &lt; pointsSize) vClusterPoints.push_back(vPoints[ind]);
    }
    return vClusterPoints;
}
</code></pre>
<p>...oder irre ich mich?<br />
Übrigens: Die beiden Parameter der Funktion sollten const sein.</p>
<p>Stefan.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/975986</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/975986</guid><dc:creator><![CDATA[DStefan]]></dc:creator><pubDate>Wed, 25 Jan 2006 14:03:48 GMT</pubDate></item><item><title><![CDATA[Reply to STL: vector mit vector vergleichen on Wed, 25 Jan 2006 14:11:43 GMT]]></title><description><![CDATA[<p>Evtl. ist es sinnvoll, auf vClusterPoints vorher ein reserve() zu machen, jenachdem wieviel Punkte man für den ClusterPoints-Vektor erwartet. So erspart man sich die eher kostspieligen Neu-Allokierungen am Anfang.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/975996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/975996</guid><dc:creator><![CDATA[7H3 N4C3R]]></dc:creator><pubDate>Wed, 25 Jan 2006 14:11:43 GMT</pubDate></item><item><title><![CDATA[Reply to STL: vector mit vector vergleichen on Wed, 25 Jan 2006 14:20:05 GMT]]></title><description><![CDATA[<p>Danke fuer die Tipps. Aber ich verstehe nicht wie ich ueber Vergleich des Index mit der Groesse des Vectors</p>
<pre><code class="language-cpp">if(Inds[i] &lt; vPoints.size())
</code></pre>
<p>auf den Index komme? Kann mir das jemand erklaeren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/976001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/976001</guid><dc:creator><![CDATA[Samo]]></dc:creator><pubDate>Wed, 25 Jan 2006 14:20:05 GMT</pubDate></item><item><title><![CDATA[Reply to STL: vector mit vector vergleichen on Wed, 25 Jan 2006 14:29:12 GMT]]></title><description><![CDATA[<p>Äh, ich dachte Inds[i] IST der Index...</p>
<p>Für alles andere würde nichts des hier geschriebenen Sinn machen <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>
<pre><code class="language-cpp">int ind = vInds[j]; // Hole jtes Element von vInds
        if(ind &lt; pointsSize) vClusterPoints.push_back(vPoints[ind]); // Benutze es als Index
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/976010</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/976010</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 25 Jan 2006 14:29:12 GMT</pubDate></item><item><title><![CDATA[Reply to STL: vector mit vector vergleichen on Wed, 25 Jan 2006 14:31:17 GMT]]></title><description><![CDATA[<p>Aehm, ich glaub ich habs verstanden, da stand mir einer doch tatsaechlich auf der Leitung <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="😃"
    /> . Danke euch fuer die Hilfe!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/976013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/976013</guid><dc:creator><![CDATA[Samo]]></dc:creator><pubDate>Wed, 25 Jan 2006 14:31:17 GMT</pubDate></item><item><title><![CDATA[Reply to STL: vector mit vector vergleichen on Wed, 25 Jan 2006 14:33:07 GMT]]></title><description><![CDATA[<p>Samo schrieb:</p>
<blockquote>
<p>Danke fuer die Tipps. Aber ich verstehe nicht wie ich ueber Vergleich des Index mit der Groesse des Vectors</p>
<pre><code class="language-cpp">if(Inds[i] &lt; vPoints.size())
</code></pre>
<p>auf den Index komme?</p>
</blockquote>
<p>Das ist nur eine Sicherheitsabfrage, ob der Index im &quot;erlaubten&quot; Bereich liegt - kannst du auch weglassen, wenn du das nicht brauchst.</p>
<p>Ansonsten steht doch der Index in vInd[i] drin, oder habe ich dich irgendwo falsch verstanden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/976020</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/976020</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 25 Jan 2006 14:33:07 GMT</pubDate></item><item><title><![CDATA[Reply to STL: vector mit vector vergleichen on Wed, 25 Jan 2006 14:58:35 GMT]]></title><description><![CDATA[<blockquote>
<p>Ansonsten steht doch der Index in vInd[i] drin, oder habe ich dich irgendwo falsch verstanden?</p>
</blockquote>
<p>Jaja, alles korrekt <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="😃"
    /> wie gesagt, mir stand da jemand gewaltig auf der Leitung.</p>
<p>Danke nochmal und entschuldigung fuer das Verwirrung stiften <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/976039</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/976039</guid><dc:creator><![CDATA[samo]]></dc:creator><pubDate>Wed, 25 Jan 2006 14:58:35 GMT</pubDate></item></channel></rss>