<?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[Ansatzfrage]]></title><description><![CDATA[<p>Ich bemühe mich im Moment etwas hilflos eine Übersicht zur STL zu gewinnen und weiß nicht so recht ob es passende Container usw. für folgende (grob umrandete) Problemstellung gibt:</p>
<p>Es gibt eine Referenzliste auf Datenelemente, wobei Referenzen in Vierergruppen eingetragen werden.<br />
Die Position der Datenelemente in ihrer Liste entspricht deren Referenzwert.<br />
Referenzwerte können dabei mehrfach in der Liste existieren, die eingetragenen Datenelemente sind jedoch einzigartig.</p>
<p>Lese ich eine neue Vierergruppe von Datenelementen ein, wird gesucht ob eines davon bereits eingetragen ist.<br />
Ist dies der Fall, werden die anderen drei Datenelemente hinter diesem eingefügt -&gt;Referenzen auf alle Datenelemente dahinter aktualisieren.<br />
Gleichzeitig werden auch die Referenzen auf die drei neuen Datenelementen an der entsprechenden Viererposition eingetragen.</p>
<p>Vielen, vielen Dank für eure Hinweise!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/143787/ansatzfrage</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 11:30:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/143787.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 Apr 2006 19:04:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ansatzfrage on Tue, 11 Apr 2006 19:04:09 GMT]]></title><description><![CDATA[<p>Ich bemühe mich im Moment etwas hilflos eine Übersicht zur STL zu gewinnen und weiß nicht so recht ob es passende Container usw. für folgende (grob umrandete) Problemstellung gibt:</p>
<p>Es gibt eine Referenzliste auf Datenelemente, wobei Referenzen in Vierergruppen eingetragen werden.<br />
Die Position der Datenelemente in ihrer Liste entspricht deren Referenzwert.<br />
Referenzwerte können dabei mehrfach in der Liste existieren, die eingetragenen Datenelemente sind jedoch einzigartig.</p>
<p>Lese ich eine neue Vierergruppe von Datenelementen ein, wird gesucht ob eines davon bereits eingetragen ist.<br />
Ist dies der Fall, werden die anderen drei Datenelemente hinter diesem eingefügt -&gt;Referenzen auf alle Datenelemente dahinter aktualisieren.<br />
Gleichzeitig werden auch die Referenzen auf die drei neuen Datenelementen an der entsprechenden Viererposition eingetragen.</p>
<p>Vielen, vielen Dank für eure Hinweise!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1035481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035481</guid><dc:creator><![CDATA[Schnitzel]]></dc:creator><pubDate>Tue, 11 Apr 2006 19:04:09 GMT</pubDate></item><item><title><![CDATA[Reply to Ansatzfrage on Tue, 11 Apr 2006 19:25:09 GMT]]></title><description><![CDATA[<p>Du kannst die stl-Container auch schachteln. Das könnte die evtl helfen.</p>
<pre><code class="language-cpp">vector&lt;vector&lt;MeinTyp&gt; &gt; referenzliste;
</code></pre>
<p>.</p>
<p>Der innere Vektor enthält dann die 4 Referenzen, der äußere logischweise dann immer die Verbunde.<br />
Allerdings kann man an den inneren Vektor natürlich auch beliebieg viele Elemente anhängen. Also wenn die Begrenzung auf 4 innerhalb getestet werden soll, musst dir da ne eigene Klasse schreiben, die dann z.B. den Vektor enthält.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1035498</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035498</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Tue, 11 Apr 2006 19:25:09 GMT</pubDate></item><item><title><![CDATA[Reply to Ansatzfrage on Tue, 11 Apr 2006 19:33:35 GMT]]></title><description><![CDATA[<p>Oder, wenn es sowieso immer 4er-Gruppen sind, dann einfach</p>
<p>vector&lt;MyClass&gt; benutzen, und MyClass halt ne Klasse bauen, die die vier Werte verwalten kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1035505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035505</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Tue, 11 Apr 2006 19:33:35 GMT</pubDate></item><item><title><![CDATA[Reply to Ansatzfrage on Tue, 11 Apr 2006 20:46:37 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;algorithm&gt;  // find
#include &lt;vector&gt;
#include &lt;cstdlib&gt;  // nur zur Demo; siehe get1von4

struct Datenelement
{
    Datenelement( int x = 0 ) : m_weisnich( x ) {}
    // --   ==-Operator für std::find
    bool operator==( const Datenelement&amp; b ) const
    {
        return m_weisnich == b.m_weisnich;
    }
    int m_weisnich;
};

struct ReferenzListe
{
    int m_idx[4];
};

Datenelement get1von4()
{
    using namespace std;
    return Datenelement( int( 10 * double(rand())/(RAND_MAX + 1) ) );
}

int main()
{
    using namespace std;
    std::vector&lt; Datenelement &gt; daten;
    std::vector&lt; ReferenzListe &gt; referenzen;
    for(;;) // &lt;- bis irgendwann
    {
        // --   4'er Gruppe Datenelemente lesen
        ReferenzListe ref;
        for( int i=0; i&lt;4; ++i )
        {
            Datenelement data = get1von4(); // &lt;- gegen was Sinnvolles austauschen
            std::vector&lt; Datenelement &gt;::iterator j = find( daten.begin(), daten.end(), data );
            if( j == daten.end() ) // ist das ein neues Element?
            {
                ref.m_idx[i] = int( daten.size() );
                daten.push_back( data );
            }
            else  // nein, das ist schon drin
            {
                ref.m_idx[i] = int( j - daten.begin() );
            }
        }
        referenzen.push_back( ref );  // 4er-Gruppe von Referenzen ablegen
    }
}
</code></pre>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1035537</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035537</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Tue, 11 Apr 2006 20:46:37 GMT</pubDate></item></channel></rss>