<?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[Vektoren vergleichen]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe 3 Vektoren und muss die Elemente, die nicht in Vektor1 oder in Vektor2 enthalten sind, auch in Vektor3 löschen, so dass danach in Vektor3 nur noch Elemente vorhanden sind, die in mindestens einem der beiden anderen Vektoren vorhanden sind.</p>
<p>Das hat leider bei mir nicht funktioniert.<br />
Jetzt habe ich das ganze auf 2 Vektoren verringert und sehe leider, dass da schon ein Problem liegt.</p>
<p>Ich würde mich sehr freuen, wenn jemand einen Tipp für mich hätte! <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>Folgendes ist mein Versuch für zwei Vektoren:</p>
<pre><code>#include &lt;algorithm&gt;
#include &lt;iostream&gt;
#include &lt;iterator&gt;
#include &lt;string&gt;
#include &lt;vector&gt;
;using namespace std;
vector&lt;string&gt;::iterator it;
vector&lt;string&gt; Vektor1,Vektor2;

vector&lt;string&gt; vektor1()
{//Vektor2 mit Elementen 1,2,3,8,4 befüllen
  Vektor2.push_back(&quot;1&quot;); Vektor2.push_back(&quot;2&quot;); Vektor2.push_back(&quot;3&quot;); 
  Vektor2.push_back(&quot;8&quot;); Vektor2.push_back(&quot;4&quot;);
//Vektor1 mit Elementen 9,4,1,2,6,7,&amp;,8 befüllen  
  Vektor1.push_back(&quot;9&quot;); Vektor1.push_back(&quot;4&quot;); Vektor1.push_back(&quot;1&quot;);
  Vektor1.push_back(&quot;2&quot;); Vektor1.push_back(&quot;6&quot;); Vektor1.push_back(&quot;7&quot;); 
  Vektor1.push_back(&quot;&amp;&quot;); Vektor1.push_back(&quot;8&quot;);

 for (int i=0;i &lt; Vektor1.size(); i++)
 {it = find(Vektor2.begin(),Vektor2.end(),Vektor1[i]);

  if (it== Vektor2.end())
  Vektor1.erase(Vektor1.begin()+i);
 }
  return Vektor1;}

  //Vektor1 anzeigen lassen, eigentlich dürfte Vektor1 jetzt nur noch die Elemente 1,2,8,4
  //besitzen
  int main(){Vektor1=vektor1();
  for (int i=0;i &lt; Vektor1.size(); i++)
  cout&lt;&lt; Vektor1[i];}
 //Die Ausgabe ist aber: 41278
</code></pre>
<p>Wie gesagt, ich bin für jede Hilfe dankbar! <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/305486/vektoren-vergleichen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 19:59:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/305486.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 30 Jun 2012 12:55:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vektoren vergleichen on Sat, 30 Jun 2012 12:55:47 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe 3 Vektoren und muss die Elemente, die nicht in Vektor1 oder in Vektor2 enthalten sind, auch in Vektor3 löschen, so dass danach in Vektor3 nur noch Elemente vorhanden sind, die in mindestens einem der beiden anderen Vektoren vorhanden sind.</p>
<p>Das hat leider bei mir nicht funktioniert.<br />
Jetzt habe ich das ganze auf 2 Vektoren verringert und sehe leider, dass da schon ein Problem liegt.</p>
<p>Ich würde mich sehr freuen, wenn jemand einen Tipp für mich hätte! <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>Folgendes ist mein Versuch für zwei Vektoren:</p>
<pre><code>#include &lt;algorithm&gt;
#include &lt;iostream&gt;
#include &lt;iterator&gt;
#include &lt;string&gt;
#include &lt;vector&gt;
;using namespace std;
vector&lt;string&gt;::iterator it;
vector&lt;string&gt; Vektor1,Vektor2;

vector&lt;string&gt; vektor1()
{//Vektor2 mit Elementen 1,2,3,8,4 befüllen
  Vektor2.push_back(&quot;1&quot;); Vektor2.push_back(&quot;2&quot;); Vektor2.push_back(&quot;3&quot;); 
  Vektor2.push_back(&quot;8&quot;); Vektor2.push_back(&quot;4&quot;);
//Vektor1 mit Elementen 9,4,1,2,6,7,&amp;,8 befüllen  
  Vektor1.push_back(&quot;9&quot;); Vektor1.push_back(&quot;4&quot;); Vektor1.push_back(&quot;1&quot;);
  Vektor1.push_back(&quot;2&quot;); Vektor1.push_back(&quot;6&quot;); Vektor1.push_back(&quot;7&quot;); 
  Vektor1.push_back(&quot;&amp;&quot;); Vektor1.push_back(&quot;8&quot;);

 for (int i=0;i &lt; Vektor1.size(); i++)
 {it = find(Vektor2.begin(),Vektor2.end(),Vektor1[i]);

  if (it== Vektor2.end())
  Vektor1.erase(Vektor1.begin()+i);
 }
  return Vektor1;}

  //Vektor1 anzeigen lassen, eigentlich dürfte Vektor1 jetzt nur noch die Elemente 1,2,8,4
  //besitzen
  int main(){Vektor1=vektor1();
  for (int i=0;i &lt; Vektor1.size(); i++)
  cout&lt;&lt; Vektor1[i];}
 //Die Ausgabe ist aber: 41278
</code></pre>
<p>Wie gesagt, ich bin für jede Hilfe dankbar! <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2228672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228672</guid><dc:creator><![CDATA[Anfänger1000]]></dc:creator><pubDate>Sat, 30 Jun 2012 12:55:47 GMT</pubDate></item><item><title><![CDATA[Reply to Vektoren vergleichen on Sat, 30 Jun 2012 13:27:30 GMT]]></title><description><![CDATA[<p>Vorab: Muss die Reihenfolge in vector 3 erhalten bleiben?</p>
<p>Eine fixe Idee wäre, vector1 und vector2 in ein set umzufüllen (oder dort Verweise zu speichern, je nach Größe der Elemente), falls es möglich ist, eine Ordnungsrelation der Elemente zu definieren. Dann könnte man recht fix gucken, ob ein gegebenes Element aus vector3 in den Elementen von vector1 oder vector2 vorhanden ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2228676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228676</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 30 Jun 2012 13:27:30 GMT</pubDate></item><item><title><![CDATA[Reply to Vektoren vergleichen on Sat, 30 Jun 2012 13:46:03 GMT]]></title><description><![CDATA[<p>@ SeppJ:vielen Dank für deine so schnelle Antwort!:-)<br />
Der Vektor, in dem die Elemente gelöscht werden sollen, sollte die Reihenfolge der Elemente beibehalten. Die Elemente sind auch eigentlich Namen statt Zahlen, so dass man sie auch nicht gut sortieren kann...</p>
<p>Kann man es denn so, wie ich es versucht habe gar nicht machen? Ehrlich gesagt ist mir gar nicht klar, warum es nicht funktioniert...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2228679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228679</guid><dc:creator><![CDATA[Anfänger1000]]></dc:creator><pubDate>Sat, 30 Jun 2012 13:46:03 GMT</pubDate></item><item><title><![CDATA[Reply to Vektoren vergleichen on Sat, 30 Jun 2012 14:16:14 GMT]]></title><description><![CDATA[<p>Wenn du eine Element gelöscht hast, dann rückt ja das nächste Element eines nach vorne. Du zählst aber stur weiter den Zähler hoch. Daher landest du nach dem Löschen beim ehemals übernächsten Element.</p>
<p>An sich kann man das aber so machen ,wie du es versuchst. Ist bei großen vectoren aber sehr ineffizient, jedes mal die Vergleichsvectoren komplett (oder bis zum gefundenen Element) zu durchsuchen.</p>
<p>Namen kann man doch wunderbar sortieren. Schon einmal ein Lexikon gesehen?</p>
<p>Außerdem wäre es vermutlich von Vorteil, wenn du wirklich nach deinem konkreten Problem fragst. Es geht also irgendwie um Stringvergleiche, dass ist doch schon ganz was anderes als man bei deinem Eingangspost meinen könnte. Je genauer du beschreibst, was du erreichen möchtest (nicht das wie), desto bessere Tipps kannst du erfahrungsgemäß bekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2228689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228689</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 30 Jun 2012 14:16:14 GMT</pubDate></item><item><title><![CDATA[Reply to Vektoren vergleichen on Sat, 30 Jun 2012 14:23:14 GMT]]></title><description><![CDATA[<p>Achso, ja danke, jetzt verstehe ich mein Problem <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>&quot;Namen&quot; war im Prinzip nicht ganz wörtlich gemeint, also es sind Namen, die aus Zahlen und Buchstaben bestehen, aber natürlich hast du auch hier Recht, sortieren könnte man sie natürlich schon, es ist nur etwas aufwendiger, als wenn es nur Zahlen oder nur Buchstabe wären <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/2228692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228692</guid><dc:creator><![CDATA[Anfänger1000]]></dc:creator><pubDate>Sat, 30 Jun 2012 14:23:14 GMT</pubDate></item><item><title><![CDATA[Reply to Vektoren vergleichen on Sat, 30 Jun 2012 14:51:03 GMT]]></title><description><![CDATA[<p>Ich versuche nochmal das Ausgangsproblem zu beschreiben:</p>
<p>Ich habe drei string-Vektoren, die jeweils über 1000 Elemente haben.<br />
Die Elemente bestehen aus Zahlen- und Buchstabenfolgen.<br />
Ich muss das Ganze nur einmal anwenden, also ist die Effizienz, denke ich, nicht ganz so wichtig.</p>
<p>In Vektor 1 sind<br />
(1)Elemente aus den beiden anderen Vektoren,<br />
(2) aber auch Elemente, die nicht in den anderen Vektoren enthalten sind.<br />
Die Elemente (2) möchte ich aus Vektor 1 löschen.</p>
<p>Erschwerend kommt hinzu, dass ich noch weitere Vektoren habe, in denen ich die Elemente, die in den „Zeilen“ stehen, an denen in Vektor1 die Elemente(2) standen, löschen muss.<br />
Wenn ich also z.B. Vektor1[0]gelöscht habe, dann muss ich auch andererVektor[0] löschen.</p>
<p>Ich hoffe, dass man verstehen kann, was ich meine…..</p>
<p>Ich bin weiterhin für jeden Tipp dankbar. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2228702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228702</guid><dc:creator><![CDATA[Anfänger1000]]></dc:creator><pubDate>Sat, 30 Jun 2012 14:51:03 GMT</pubDate></item><item><title><![CDATA[Reply to Vektoren vergleichen on Sat, 30 Jun 2012 16:38:18 GMT]]></title><description><![CDATA[<p>Schön. Deine Methode wird nach Verbesserung des Fehler funktionieren, meine auch (dabei wird meine viel schneller sein, was bei 1000 Einträgen aber sowieso egal sein sollte). Wo sind noch Probleme?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2228724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228724</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 30 Jun 2012 16:38:18 GMT</pubDate></item><item><title><![CDATA[Reply to Vektoren vergleichen on Sat, 30 Jun 2012 17:38:22 GMT]]></title><description><![CDATA[<p>hat sich erledigt, danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2228743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228743</guid><dc:creator><![CDATA[Anfänger1000]]></dc:creator><pubDate>Sat, 30 Jun 2012 17:38:22 GMT</pubDate></item></channel></rss>