<?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;lt;eigene Klasse&amp;gt; mit find durchsuchen]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;algorithm&gt;

using namespace std;

class person
{
	private:
	int pnr;
	string name;
	public:
	person(int nr,string nachname):pnr(nr),name(nachname){}
	person(){}
	int get_pnr()
	{
		return pnr;
	}
	string get_name()
	{
		return name;
	}
	bool is_persnr(int nr)
	{
		return pnr==nr;
	}
};

int _main()
{
	vector &lt;person&gt; leute;
	leute.push_back(person(1,&quot;Arne&quot;));
	leute.push_back(person(2,&quot;Fred&quot;));
         //Das funktioniert natürlich nicht
	vector &lt;person&gt;::iterator it=find(leute.begin(),leute.end(),person::is_persnr(2));
	return 0;
}
</code></pre>
<p>Hallo,<br />
habe einen vector mit meiner eigenen Klasse.<br />
Nun möchte ich diesen vector nach z.B wie hier der pnr durchsuchen.<br />
Bekomme ich das mit find hin, oder muss ich durch den vecor iterieren und dann<br />
&quot;von Hand&quot; vergleichen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/288220/vector-lt-eigene-klasse-gt-mit-find-durchsuchen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 02:23:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/288220.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 12 Jun 2011 16:42:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to vector &amp;lt;eigene Klasse&amp;gt; mit find durchsuchen on Sun, 12 Jun 2011 16:42:42 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;algorithm&gt;

using namespace std;

class person
{
	private:
	int pnr;
	string name;
	public:
	person(int nr,string nachname):pnr(nr),name(nachname){}
	person(){}
	int get_pnr()
	{
		return pnr;
	}
	string get_name()
	{
		return name;
	}
	bool is_persnr(int nr)
	{
		return pnr==nr;
	}
};

int _main()
{
	vector &lt;person&gt; leute;
	leute.push_back(person(1,&quot;Arne&quot;));
	leute.push_back(person(2,&quot;Fred&quot;));
         //Das funktioniert natürlich nicht
	vector &lt;person&gt;::iterator it=find(leute.begin(),leute.end(),person::is_persnr(2));
	return 0;
}
</code></pre>
<p>Hallo,<br />
habe einen vector mit meiner eigenen Klasse.<br />
Nun möchte ich diesen vector nach z.B wie hier der pnr durchsuchen.<br />
Bekomme ich das mit find hin, oder muss ich durch den vecor iterieren und dann<br />
&quot;von Hand&quot; vergleichen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2077168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2077168</guid><dc:creator><![CDATA[opkal]]></dc:creator><pubDate>Sun, 12 Jun 2011 16:42:42 GMT</pubDate></item><item><title><![CDATA[Reply to vector &amp;lt;eigene Klasse&amp;gt; mit find durchsuchen on Sun, 12 Jun 2011 17:00:55 GMT]]></title><description><![CDATA[<p>Mach in <code>person</code> einen Vergleichsoperator mit <code>int</code> und übergib als dritter Parameter bei <code>std::find</code> den gewünschten Wert (in diesem Fall zwei).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2077181</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2077181</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Sun, 12 Jun 2011 17:00:55 GMT</pubDate></item><item><title><![CDATA[Reply to vector &amp;lt;eigene Klasse&amp;gt; mit find durchsuchen on Sun, 12 Jun 2011 17:01:47 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>das Stichwort dafür lautet: Funktor<br />
s. z.B. <a href="http://www.c-plusplus.net/forum/277536" rel="nofollow">http://www.c-plusplus.net/forum/277536</a></p>
<p>Wenn du schon einen neueren Compiler hast, dann könntest du auch Lambda-Expressions verwenden, so in der Art</p>
<pre><code class="language-cpp">find(leute.begin(),leute.end(), [](p){ return p.is_persnr(2); });
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2077182</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2077182</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Sun, 12 Jun 2011 17:01:47 GMT</pubDate></item><item><title><![CDATA[Reply to vector &amp;lt;eigene Klasse&amp;gt; mit find durchsuchen on Sun, 12 Jun 2011 17:07:00 GMT]]></title><description><![CDATA[<p>Ich würde es etwa so machen:</p>
<pre><code class="language-cpp">class Person
{
  private:
    int ID;
  public:
    explicit Person(int ID)
    {
      this-&gt;ID = ID;
    }
    bool operator== (const Person&amp; Obj) const
    {
      return this-&gt;ID == Obj.ID;
    }
};
typedef std::vector&lt;Person&gt; Container;
Container MeinVector;
//Vector füllen
Container::iterator PersonNo2 = std::find(MeinVector.begin(), MeinVector.end(), Person(2));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2077191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2077191</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Sun, 12 Jun 2011 17:07:00 GMT</pubDate></item><item><title><![CDATA[Reply to vector &amp;lt;eigene Klasse&amp;gt; mit find durchsuchen on Sun, 12 Jun 2011 17:12:29 GMT]]></title><description><![CDATA[<p>Th69 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">find(leute.begin(),leute.end(), [](p){ return p.is_persnr(2); });
</code></pre>
</blockquote>
<p>Fast richtig. Das Template hierfür heißt <code>find_if</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2077200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2077200</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Sun, 12 Jun 2011 17:12:29 GMT</pubDate></item><item><title><![CDATA[Reply to vector &amp;lt;eigene Klasse&amp;gt; mit find durchsuchen on Sun, 12 Jun 2011 17:23:01 GMT]]></title><description><![CDATA[<p>Danke. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
&quot;Funktor&quot; das wars.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2077210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2077210</guid><dc:creator><![CDATA[opkal]]></dc:creator><pubDate>Sun, 12 Jun 2011 17:23:01 GMT</pubDate></item></channel></rss>