<?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[Datenstruktur fuer Caching]]></title><description><![CDATA[<p>Hallo Leute!</p>
<p>Ich benoetige einen fixed-size Cache, der aelteste Elemente loescht, sobald die Groesse erreicht ist, wie in einer Queue. Allerdings moechte ich die Elemente anhand eines Keys einfuegen und suchen koennen. Bisher habe ich dafuer boost.multi_index verwendet, allerdings funktioniert dieser nicht mit movable-only Typen (aka unique_ptr), weshalb ich einen Workaround mit mutable schreiben musste.</p>
<p>Irgendwelche Vorschlaege, wie man das ohne Workaround, vielleicht sogar ausschliesslich mit Standard-Mitteln effizient hinbekommt?</p>
<p>Gruesse,<br />
Der Kellerautomat</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/308009/datenstruktur-fuer-caching</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 05:58:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/308009.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 12 Sep 2012 08:54:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datenstruktur fuer Caching on Wed, 12 Sep 2012 08:55:00 GMT]]></title><description><![CDATA[<p>Hallo Leute!</p>
<p>Ich benoetige einen fixed-size Cache, der aelteste Elemente loescht, sobald die Groesse erreicht ist, wie in einer Queue. Allerdings moechte ich die Elemente anhand eines Keys einfuegen und suchen koennen. Bisher habe ich dafuer boost.multi_index verwendet, allerdings funktioniert dieser nicht mit movable-only Typen (aka unique_ptr), weshalb ich einen Workaround mit mutable schreiben musste.</p>
<p>Irgendwelche Vorschlaege, wie man das ohne Workaround, vielleicht sogar ausschliesslich mit Standard-Mitteln effizient hinbekommt?</p>
<p>Gruesse,<br />
Der Kellerautomat</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250530</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250530</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Wed, 12 Sep 2012 08:55:00 GMT</pubDate></item><item><title><![CDATA[Reply to Datenstruktur fuer Caching on Wed, 12 Sep 2012 09:05:41 GMT]]></title><description><![CDATA[<p>Ich kenne mich mit movable-only Typen nicht so gut aus, aber vielleicht funktioniert das hier:</p>
<p>eine map als Container für den Typen, parallel eine queue, in dem du die Keys enthälts? Wenn die Queue voll ist, nimmst du dir das erste Element und hast damit gleich den Key, um das Objekt aus der map zu löschen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250534</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250534</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Wed, 12 Sep 2012 09:05:41 GMT</pubDate></item><item><title><![CDATA[Reply to Datenstruktur fuer Caching on Wed, 12 Sep 2012 09:07:23 GMT]]></title><description><![CDATA[<p>Ich habe einen LRU/LFU folgendermaßen implementiert:</p>
<p>eine list aus iteratoren in eine map und die map aus Key und iterator in die list.<br />
dafür lässt sich super boost intrusive container nehmen - das spart allokationen.</p>
<p>Die list gibt die reihenfolge an in der die Elemente gelöscht werden soll. bei LRU wird der iterator wieder einfach nach hinten gespliced und bei LFU hat die list neben einem iterator in die map auch einen counter der bei jedem Zugriff erhöht wird und bei jedem Zugriff wird das Elemente in der liste verschoben (falls notwendig) so dass das lfu element imer am ende ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250537</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250537</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Wed, 12 Sep 2012 09:07:23 GMT</pubDate></item><item><title><![CDATA[Reply to Datenstruktur fuer Caching on Wed, 12 Sep 2012 09:52:18 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>dafür lässt sich super boost intrusive container nehmen - das spart allokationen.</p>
</blockquote>
<p>+1 für intrusive container<br />
spart nicht nur allokationen, auch kopfschmerzen wenn man versucht das ganze exception-safe zu implementieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250557</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 12 Sep 2012 09:52:18 GMT</pubDate></item><item><title><![CDATA[Reply to Datenstruktur fuer Caching on Wed, 12 Sep 2012 12:23:00 GMT]]></title><description><![CDATA[<p>Vielen Dank fuer eure Tipps. LRU-Cache war das Stichwort, das ich gesucht habe. <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="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250629</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Wed, 12 Sep 2012 12:23:00 GMT</pubDate></item></channel></rss>