<?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[[Gelöst] Alternative zu std::vector]]></title><description><![CDATA[<p>Hi zusammen,</p>
<p>ich habe eine eigene templated Containerklasse, die intern std::vector benutzt, um ihre Elemente zu speichern. Dummerweise ist std::vector für bool spezialisiert und bringt einige unschöne Eigenschaften mit, die mir Kopfschmerzen bereiten.<br />
Lange Rede, kurzer Sinn: Gibt es eine Klasse, die die gleiche Funktionalität wie std::vector bietet, nur dass sie nicht für bool spezialisiert ist? Kann ruhig auch aus boost/TR1 sein, nur habe ich da bisher nichts gefunden.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/262328/gelöst-alternative-zu-std-vector</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 17:03:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/262328.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 04 Mar 2010 11:18:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [Gelöst] Alternative zu std::vector on Fri, 05 Mar 2010 08:24:15 GMT]]></title><description><![CDATA[<p>Hi zusammen,</p>
<p>ich habe eine eigene templated Containerklasse, die intern std::vector benutzt, um ihre Elemente zu speichern. Dummerweise ist std::vector für bool spezialisiert und bringt einige unschöne Eigenschaften mit, die mir Kopfschmerzen bereiten.<br />
Lange Rede, kurzer Sinn: Gibt es eine Klasse, die die gleiche Funktionalität wie std::vector bietet, nur dass sie nicht für bool spezialisiert ist? Kann ruhig auch aus boost/TR1 sein, nur habe ich da bisher nichts gefunden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864191</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Fri, 05 Mar 2010 08:24:15 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Alternative zu std::vector on Thu, 04 Mar 2010 11:39:59 GMT]]></title><description><![CDATA[<p>Nimm doch einfach char. <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>Ach ja, man könnte sonst z.B. deque anstatt vector nehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864197</guid><dc:creator><![CDATA[__Stefan__]]></dc:creator><pubDate>Thu, 04 Mar 2010 11:39:59 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Alternative zu std::vector on Thu, 04 Mar 2010 11:39:30 GMT]]></title><description><![CDATA[<p>auf bool spezialisiert? Wie soll man das verstehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864201</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864201</guid><dc:creator><![CDATA[zwutz]]></dc:creator><pubDate>Thu, 04 Mar 2010 11:39:30 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Alternative zu std::vector on Thu, 04 Mar 2010 11:47:25 GMT]]></title><description><![CDATA[<p>zwutz schrieb:</p>
<blockquote>
<p>auf bool spezialisiert? Wie soll man das verstehen?</p>
</blockquote>
<p>Ein std::vector ist für bool spezialisiert, so dass intern ein Eintrag ein einzelnes Bit und nicht ein Byte ist. Bringt aber, wie der TO meint ein paar Probleme mit.</p>
<p>C++0x soll dann das wieder rückgängig machen und intern normale bool's speichern. Im Moment könnte man das über einen bool Wrapper machen oder auch z.B über ein std::vector&lt;char&gt; gehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864208</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864208</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 04 Mar 2010 11:47:25 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Alternative zu std::vector on Thu, 04 Mar 2010 12:00:23 GMT]]></title><description><![CDATA[<p>danke... ich hatte es so verstanden, dass vector am Besten für bool geeignet ist</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864217</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864217</guid><dc:creator><![CDATA[zwutz]]></dc:creator><pubDate>Thu, 04 Mar 2010 12:00:23 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Alternative zu std::vector on Thu, 04 Mar 2010 12:01:25 GMT]]></title><description><![CDATA[<p>zwutz schrieb:</p>
<blockquote>
<p>danke... ich hatte es so verstanden, dass vector am Besten für bool geeignet ist</p>
</blockquote>
<p>In den meisten Fällen macht std::bitset mehr Sinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864219</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864219</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Thu, 04 Mar 2010 12:01:25 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Alternative zu std::vector on Thu, 04 Mar 2010 13:08:59 GMT]]></title><description><![CDATA[<p>Du kannst afaik auch &quot;einfach&quot; einen eigenen Allocator erstellen, welcher schlicht den Standardallocator wrappt. Wenn Du diesen dann beim Vector angibst wird - soweit ich weiss - nicht die spezialisierte Version genutzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864249</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864249</guid><dc:creator><![CDATA[&amp;lt;putintightnick&amp;gt;]]></dc:creator><pubDate>Thu, 04 Mar 2010 13:08:59 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Alternative zu std::vector on Thu, 04 Mar 2010 13:49:57 GMT]]></title><description><![CDATA[<p>&lt;putintightnick&gt; schrieb:</p>
<blockquote>
<p>Wenn Du diesen dann beim Vector angibst wird - soweit ich weiss - nicht die spezialisierte Version genutzt.</p>
</blockquote>
<p>Da weißt du leider was falsches. Der Standard gibt an, dass besagte Spezialisierung eben nur partiell ist:</p>
<p>Der Standard schrieb:</p>
<blockquote>
<p>To optimize space allocation, a specialization of vector for <code>bool</code> elements is provided:</p>
<pre><code class="language-cpp">namespace std {
  template &lt;class Allocator&gt; class vector&lt;bool, Allocator&gt; {
[...]
</code></pre>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1864281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864281</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 04 Mar 2010 13:49:57 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Alternative zu std::vector on Thu, 04 Mar 2010 14:59:23 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Danke für´s Feedback:</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/15294">@__Stefan__</a><br />
Im Moment benutze ich std::vector&lt;char&gt; statt std::vector&lt;bool&gt;, aber jetzt abe ich selber Spezialisierungen für meine Containerklasse und da muss ich die Datentypen bool und char voneinander unterscheiden können.<br />
std::deque scheidet aus, weil die Elemente linear im Speicher liegen müssen.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/17203">@zwutz</a><br />
<strong>Für</strong> bool spezialisiert, nicht <strong>auf</strong> <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><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18422">@Drakon</a><br />
Hab mir gerade so einen Wrapper gebaut, muss mal schauen, ob´s damit zu Problemen kommt.</p>
<p>@putintightnick + pumuckl<br />
pumuckl hat leider recht, auch ein custom allocator verhindert keine Spezialisierung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864327</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864327</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Thu, 04 Mar 2010 14:59:23 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Alternative zu std::vector on Thu, 04 Mar 2010 17:03:16 GMT]]></title><description><![CDATA[<p>ich weiß jetzt nicht sicher, ob der Compiler an der Stelle irgendwo Fehlermeldungen oder Warnungen wirft, aber ginge evtl sowas:</p>
<pre><code class="language-cpp">template &lt;class T&gt;
struct TypeMapper
{
  typedef std::vector&lt;T&gt; type;
};

template &lt;&gt;
struct TypeMapper&lt;bool&gt;
{
  typedef std::vector&lt;char&gt; type;
};

template &lt;class T&gt;
class Container
{
  typedef typename TypeMapper&lt;T&gt;::type VectorType;

  VectorType myVector;

  /* ... */
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1864398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864398</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 04 Mar 2010 17:03:16 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Alternative zu std::vector on Fri, 05 Mar 2010 08:27:23 GMT]]></title><description><![CDATA[<p>Ich habe jetzt eine simple wrapper Klasse für bool, zusammen mit boost.static_assert bekomme ich sogar ne´ lesbare Compiler Fehlermeldung, wenn ich versuche, bool statt bool_wrapper als Template Typ zu benutzen.<br />
Vielen Dank für die Antworten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864612</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Fri, 05 Mar 2010 08:27:23 GMT</pubDate></item></channel></rss>