<?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[Folge von Mengen verwalten]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich möchte gerne eine Folge von Partitionen der Menge {0,1,...n} verwalten, also etwas in dieser Form: (({0,1,2},{3,4,5}),({2,4,0},{5,1,3}),...).</p>
<p>Relevant ist die Reihenfolge der Partitionen sowie die Reihenfolge der Teilmengen. Im Programm wird eine solche Liste nicht mehr geändert, wenn sie einmal erstellt wurde. Es muss aber für jede Partition aus der Liste schnell entschieden werden, in welcher Teilmenge eine vorgegebene natürliche Zahl k liegt.</p>
<p>Ich suche einen geeigneten Datentyp.</p>
<p>Wie wäre es mit einem verschachtelten Array und set aus der STL für die Teilmengen?</p>
<p>Grüße, Apollo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/325457/folge-von-mengen-verwalten</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Jul 2026 11:47:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/325457.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 03 May 2014 17:21:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Folge von Mengen verwalten on Sat, 03 May 2014 17:21:59 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich möchte gerne eine Folge von Partitionen der Menge {0,1,...n} verwalten, also etwas in dieser Form: (({0,1,2},{3,4,5}),({2,4,0},{5,1,3}),...).</p>
<p>Relevant ist die Reihenfolge der Partitionen sowie die Reihenfolge der Teilmengen. Im Programm wird eine solche Liste nicht mehr geändert, wenn sie einmal erstellt wurde. Es muss aber für jede Partition aus der Liste schnell entschieden werden, in welcher Teilmenge eine vorgegebene natürliche Zahl k liegt.</p>
<p>Ich suche einen geeigneten Datentyp.</p>
<p>Wie wäre es mit einem verschachtelten Array und set aus der STL für die Teilmengen?</p>
<p>Grüße, Apollo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2397237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2397237</guid><dc:creator><![CDATA[Seecho]]></dc:creator><pubDate>Sat, 03 May 2014 17:21:59 GMT</pubDate></item><item><title><![CDATA[Reply to Folge von Mengen verwalten on Sat, 03 May 2014 17:34:52 GMT]]></title><description><![CDATA[<p>Seecho schrieb:</p>
<blockquote>
<p>Wie wäre es mit einem verschachtelten Array und set aus der STL für die Teilmengen?</p>
</blockquote>
<p>Erfüllt das deine Anforderungen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2397238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2397238</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sat, 03 May 2014 17:34:52 GMT</pubDate></item><item><title><![CDATA[Reply to Folge von Mengen verwalten on Sat, 03 May 2014 17:45:10 GMT]]></title><description><![CDATA[<pre><code>#include &lt;array&gt;
#include &lt;vector&gt;

typedef std::array&lt;int, 3&gt; triple;

int main()
{
   std::vector&lt;triple&gt; v = { { 0, 1, 2}, { 3, 4, 5 } };
}
</code></pre>
<p><a href="http://channel9.msdn.com/Events/Build/2014/2-661" rel="nofollow">http://channel9.msdn.com/Events/Build/2014/2-661</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2397241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2397241</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Sat, 03 May 2014 17:45:10 GMT</pubDate></item><item><title><![CDATA[Reply to Folge von Mengen verwalten on Sat, 03 May 2014 18:30:01 GMT]]></title><description><![CDATA[<blockquote>
<p>ich möchte gerne eine Folge von Partitionen der Menge {0,1,...n} verwalten, also etwas in dieser Form: (({0,1,2},{3,4,5}),({2,4,0},{5,1,3}),...).</p>
</blockquote>
<p>Am besten speicherst du einfach ganze Partitionen in einem Container und unterscheidest dann zwischen Untermengen dieser Partitionen im Code. Kannst natürlich auch start/end Iteratoren auf diese Untermengen per Zeigerarithmetik bekommen.</p>
<p>Steht die Größe (oder gar Anzahl) der Partitionen schon zur Compile-Zeit fest? Dann kannst du seit C++11 <code>std::array</code> , oder mit C++98 ein echtes Array bzw. selbstgebastelten Wrapper nehmen, sonst, falls nichts dagegen spricht, <code>vector</code> .<br />
Also so etwa in der Richtung</p>
<pre><code>std::vector&lt;std::array&lt;std::uint8_t, 6&gt;&gt; mPartitions;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2397245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2397245</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sat, 03 May 2014 18:30:01 GMT</pubDate></item><item><title><![CDATA[Reply to Folge von Mengen verwalten on Mon, 05 May 2014 09:35:17 GMT]]></title><description><![CDATA[<p>Seecho schrieb:</p>
<blockquote>
<p>Ich suche einen geeigneten Datentyp.</p>
</blockquote>
<p>Eine map?<br />
Ich speichere zu jeder Zahl die Indices der Teilmengen in denen diese vorkommt.</p>
<pre><code class="language-cpp">#include &lt;map&gt;
#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;initializer_list&gt;

class partitionlist{
public:
  using subset = std::vector&lt;int&gt;;
  using partition = std::vector&lt;subset&gt;;

  partitionlist(std::initializer_list&lt;partition&gt; l)
    :data_(l)
  {
    for(const auto&amp; p : data_){
      int ix = 0;
      for(const auto&amp; ss : p){
	for(auto i : ss)
	  lut_[i].push_back(ix);
	++ix;
      }
    }
  }

  const subset&amp; operator()(int i, int j) const {
    return data_[i][j];
  }

  std::vector&lt;size_t&gt; find(int i)
  {
    return lut_[i];
  }
private:
  std::vector&lt;partition&gt; data_;
  std::map&lt;int, std::vector&lt;size_t&gt;&gt; lut_;
};

std::ostream&amp; operator&lt;&lt;(std::ostream&amp; out, const partitionlist::subset&amp; ss)
{
  for(auto i: ss)
    out &lt;&lt; i &lt;&lt; ' ';
  return out;
}

int main(){
  using namespace std;
  partitionlist l = {{{0,1,2},{3,4,5}},{{2,4,0},{5,1,3}}};
  auto ixs = l.find(5);
  int i=0;
  for(auto j : ixs){
    std::cout &lt;&lt; l(i,j) &lt;&lt; '\n';
    ++i;
  }
}
</code></pre>
<p>Die Formatierung ist für'n Müll...sei's drum. <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/2397426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2397426</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Mon, 05 May 2014 09:35:17 GMT</pubDate></item><item><title><![CDATA[Reply to Folge von Mengen verwalten on Mon, 05 May 2014 11:30:31 GMT]]></title><description><![CDATA[<p>Gelöscht, hatte Quatsch gelesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2397446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2397446</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 05 May 2014 11:30:31 GMT</pubDate></item><item><title><![CDATA[Reply to Folge von Mengen verwalten on Mon, 05 May 2014 16:19:08 GMT]]></title><description><![CDATA[<p>*** Korrektur obsolet. ***</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2397449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2397449</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Mon, 05 May 2014 16:19:08 GMT</pubDate></item><item><title><![CDATA[Reply to Folge von Mengen verwalten on Mon, 05 May 2014 16:05:39 GMT]]></title><description><![CDATA[<p>Hi, danke fuer die Antworten, insbesondere an Arcoth und Furble Wurble! Habe mir naemlich jetzt ueberlegt, es mit map zu machen. <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/2397515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2397515</guid><dc:creator><![CDATA[Seecho]]></dc:creator><pubDate>Mon, 05 May 2014 16:05:39 GMT</pubDate></item><item><title><![CDATA[Reply to Folge von Mengen verwalten on Mon, 05 May 2014 18:35:06 GMT]]></title><description><![CDATA[<p>Ich hätte jetzt vorgeschlagen eine partition als vector&lt;int&gt; zu kodieren, wobei der v[i] sagt in der wievielten teilmenge der partition das i drin ist. Kommt aber natürlich auch drauf an was du damit genau vor hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2397530</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2397530</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Mon, 05 May 2014 18:35:06 GMT</pubDate></item></channel></rss>