<?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[sortierter vector&amp;lt;T&amp;gt;]]></title><description><![CDATA[<p>Hi,</p>
<p>ich suche sowas wie einen vector&lt;T&gt;, wobei der Typ T mit operator&lt; verglichen werden kann, und der sortiert ist und keine Duplikate hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/322435/sortierter-vector-lt-t-gt</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 03:52:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/322435.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 20 Dec 2013 08:13:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to sortierter vector&amp;lt;T&amp;gt; on Fri, 20 Dec 2013 08:13:31 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich suche sowas wie einen vector&lt;T&gt;, wobei der Typ T mit operator&lt; verglichen werden kann, und der sortiert ist und keine Duplikate hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372925</guid><dc:creator><![CDATA[container]]></dc:creator><pubDate>Fri, 20 Dec 2013 08:13:31 GMT</pubDate></item><item><title><![CDATA[Reply to sortierter vector&amp;lt;T&amp;gt; on Fri, 20 Dec 2013 08:17:55 GMT]]></title><description><![CDATA[<p>Benutze doch std::vector&lt;..&gt; mit std::sort(..) und std::unique(..).<br />
Ob der Typ T mit &quot;operator&lt;&quot; verglichen werden kann, hängt nur von T ab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372926</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Fri, 20 Dec 2013 08:17:55 GMT</pubDate></item><item><title><![CDATA[Reply to sortierter vector&amp;lt;T&amp;gt; on Fri, 20 Dec 2013 08:19:13 GMT]]></title><description><![CDATA[<p>Definiere &quot;sowas wie einen vector&quot;. Set ist sortiert und eindeutig, mit sort und unique kann man einen vector sortieren und duplikate entfernen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372927</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Fri, 20 Dec 2013 08:19:13 GMT</pubDate></item><item><title><![CDATA[Reply to sortierter vector&amp;lt;T&amp;gt; on Fri, 20 Dec 2013 08:25:53 GMT]]></title><description><![CDATA[<p><a href="http://www.cplusplus.com/reference/set/set/" rel="nofollow">std::set&lt;T&gt;</a>, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372928</guid><dc:creator><![CDATA[Kenner von C++]]></dc:creator><pubDate>Fri, 20 Dec 2013 08:25:53 GMT</pubDate></item><item><title><![CDATA[Reply to sortierter vector&amp;lt;T&amp;gt; on Fri, 20 Dec 2013 08:50:53 GMT]]></title><description><![CDATA[<p>container schrieb:</p>
<blockquote>
<p>ich suche sowas wie einen vector&lt;T&gt;, wobei der Typ T mit operator&lt; verglichen werden kann, und der sortiert ist und keine Duplikate hat.</p>
</blockquote>
<p>Welche Operationen brauchst du denn?<br />
Bzw was willst du damit eigentlich machen?</p>
<p>Und sonst gibt's auch noch <a href="http://www.boost.org/doc/libs/1_52_0/doc/html/container/non_standard_containers.html#container.non_standard_containers.flat_xxx" rel="nofollow">flat_set</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372936</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Fri, 20 Dec 2013 08:50:53 GMT</pubDate></item><item><title><![CDATA[Reply to sortierter vector&amp;lt;T&amp;gt; on Fri, 20 Dec 2013 08:56:16 GMT]]></title><description><![CDATA[<p>Gibt es eine Funktion, die ein T in einen sortierten vector&lt;T&gt; einfügt? Also eine, die schneller als<br />
vector&lt;T&gt;.push_back(x);<br />
sort(begin(), end());<br />
ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372938</guid><dc:creator><![CDATA[container]]></dc:creator><pubDate>Fri, 20 Dec 2013 08:56:16 GMT</pubDate></item><item><title><![CDATA[Reply to sortierter vector&amp;lt;T&amp;gt; on Fri, 20 Dec 2013 09:21:00 GMT]]></title><description><![CDATA[<p>container schrieb:</p>
<blockquote>
<p>Gibt es eine Funktion, die ein T in einen sortierten vector&lt;T&gt; einfügt?<br />
Also eine, die schneller als<br />
vector&lt;T&gt;.push_back(x);<br />
sort(begin(), end());<br />
ist.</p>
</blockquote>
<p>Wenn der Vektor schon sortiert ist, musst du nur den Einfügepunkt finden.<br />
siehe std::upper_bound<br />
siehe vector&lt;T&gt;::insert</p>
<p>Das lohnt sich im Vergleich zu std::set bei kleinen Datenmengen aber auch dann, wenn du nur selten einfügst und oft abfragst. Abfragen dann per binäre Suche (binary_search, lower_bound, upper_bound). Wenn du auch sehr oft und schnell einfügen willst, ist vielleicht so etwas wie std::set das Richtige.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372941</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Fri, 20 Dec 2013 09:21:00 GMT</pubDate></item><item><title><![CDATA[Reply to sortierter vector&amp;lt;T&amp;gt; on Fri, 20 Dec 2013 09:27:23 GMT]]></title><description><![CDATA[<p>Danke.</p>
<pre><code>vector.insert(upper_bound(vector.begin(), vector.end(), D), D);
</code></pre>
<p>verursacht mir allerdings einen &quot;vector insert iterator outside range&quot;. Was mache ich falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372948</guid><dc:creator><![CDATA[container]]></dc:creator><pubDate>Fri, 20 Dec 2013 09:27:23 GMT</pubDate></item><item><title><![CDATA[Reply to sortierter vector&amp;lt;T&amp;gt; on Fri, 20 Dec 2013 09:28:25 GMT]]></title><description><![CDATA[<p>Fehler gefunden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372949</guid><dc:creator><![CDATA[container]]></dc:creator><pubDate>Fri, 20 Dec 2013 09:28:25 GMT</pubDate></item><item><title><![CDATA[Reply to sortierter vector&amp;lt;T&amp;gt; on Fri, 20 Dec 2013 10:40:54 GMT]]></title><description><![CDATA[<p>bzgl &quot;keine Duplikate&quot;:<br />
Nimm statt upper_bound doch lieber lower_bound und teste damit, ob der Wert schon vorhanden ist:</p>
<pre><code class="language-cpp">template&lt;class T, class Alloc, class U&gt;
auto ordered_insert(std::vector&lt;T,Alloc&gt; &amp; into, U &amp;&amp; what)
  -&gt; decltype(std::make_pair(into.insert(into.end(),what),true))
{
    auto lb = std::lower_bound(into.begin(),into.end(),what);
    if (lb != into.end() &amp;&amp; *lb == what) {
        return std::make_pair(lb,false); // Wert gab es schon
    } else {
        return std::make_pair(           // Wert neu hinzufuegen
            into.insert(lb,std::forward&lt;U&gt;(what)),
            true
        );
    }
}
</code></pre>
<p>(ungetestet)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372968</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372968</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Fri, 20 Dec 2013 10:40:54 GMT</pubDate></item><item><title><![CDATA[Reply to sortierter vector&amp;lt;T&amp;gt; on Fri, 20 Dec 2013 11:36:56 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>bzgl &quot;keine Duplikate&quot;:<br />
Nimm statt upper_bound doch lieber lower_bound</p>
</blockquote>
<p>Warum? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372977</guid><dc:creator><![CDATA[container]]></dc:creator><pubDate>Fri, 20 Dec 2013 11:36:56 GMT</pubDate></item><item><title><![CDATA[Reply to sortierter vector&amp;lt;T&amp;gt; on Fri, 20 Dec 2013 17:42:33 GMT]]></title><description><![CDATA[<p>container schrieb:</p>
<blockquote>
<p>krümelkacker schrieb:</p>
<blockquote>
<p>bzgl &quot;keine Duplikate&quot;:<br />
Nimm statt upper_bound doch lieber lower_bound</p>
</blockquote>
<p>Warum? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>*push*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2373075</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2373075</guid><dc:creator><![CDATA[container]]></dc:creator><pubDate>Fri, 20 Dec 2013 17:42:33 GMT</pubDate></item></channel></rss>