Library: document usage of AllocationCluster for STL containers

- basically works out-of-the-box now
- the hard wired fixed Extent size is a serious limitation
- however, this is not the intended primary use, rather complementary
This commit is contained in:
Fischlurch 2024-05-27 23:35:59 +02:00
parent db4fbde201
commit e4f91ecb4d
3 changed files with 184 additions and 48 deletions

View file

@ -50,7 +50,6 @@
**
** @see scoped-holder-test.cpp
** @see scoped-holder-transfer.hpp use in std::vector
** @see AllocationCluster usage example
** @see scoped-ptrvect.hpp simple pointer-holding collection
*/

View file

@ -30,13 +30,15 @@
#include "lib/test/test-helper.hpp"
#include "lib/allocation-cluster.hpp"
#include "lib/test/diagnostic-output.hpp"/////////////////TODO
#include "lib/format-util.hpp"/////////////TODO
#include "lib/iter-explorer.hpp"
#include "lib/util.hpp"
#include <array>
#include <vector>
#include <limits>
#include <functional>
#include <limits>
#include <vector>
#include <array>
#include <set>
using ::Test;
using lib::explore;
@ -129,6 +131,11 @@ namespace test {
invoker[rand() % NUM_TYPES] (clu, uchar(i));
}
inline uint
sum (uint n) ///< sum of integers 1...N
{
return n*(n+1) / 2;
}
}
@ -369,13 +376,50 @@ namespace test {
/** @test TODO demonstrate use as Standard-Allocator
* @todo WIP 5/24 🔁 define implement
template<typename X>
using Allo = AllocationCluster::Allocator<X>;
/** @test demonstrate use as Standard-Allocator
* - define a vector, string and set to use the AllocationCluster as backend
* - fill the vector with numbers and the set with random strings
* @note the extent size (hard coded as of 5/24) imposes a serious limitation
* regarding usable data structures; e.g. the std::deque immediately attempts
* to allocate a node buffer with >500 bytes, which is not supported by
* the current (rather simplistic) storage manager in AllocationCluster.
*/
void
use_as_Allocator()
{
UNIMPLEMENTED ("Clusterfuck");
using VecI = std::vector<uint16_t, Allo<uint16_t>>;
using Strg = std::basic_string<char, std::char_traits<char>, Allo<char>>;
using SetS = std::set<Strg, std::less<Strg>, Allo<Strg>>;
AllocationCluster clu;
CHECK (clu.numExtents() == 0);
VecI veci{clu.getAllocator<uint16_t>()};
// Since vector needs a contiguous allocation,
// the maximum number of elements is limited by the Extent size (256 bytes - 2*sizeof(void*))
// Moreover, the vector grows its capacity; AllocationCluster does not support re-allocation,
// and thus the initial smaller memory chunks will just be abandoned.
const uint MAX = 64;
for (uint i=1; i<=MAX; ++i)
veci.push_back(i);
CHECK (clu.numExtents() == 2);
CHECK (veci.capacity() == 64);
// fill a set with random strings...
SetS sets{clu.getAllocator<Strg>()};
for (uint i=0; i<NUM_OBJECTS; ++i)
sets.emplace (test::randStr(32), clu.getAllocator<char>());
CHECK (sets.size() > 0.9 * NUM_OBJECTS);
CHECK (clu.numExtents() > 200);
// verify the data in the first allocation is intact
CHECK (explore(veci).resultSum() == sum(64));
}
};

View file

@ -81606,7 +81606,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1715627027263" ID="ID_1272289707" MODIFIED="1715627051080" TEXT="Aufgabe: den Standard-Allocator besser verstehen">
<node COLOR="#435e98" CREATED="1715627027263" ID="ID_1272289707" MODIFIED="1716848766314" TEXT="Aufgabe: den Standard-Allocator besser verstehen">
<icon BUILTIN="yes"/>
<node CREATED="1715627069918" ID="ID_1496924967" MODIFIED="1715627170299" TEXT="es k&#xf6;nnte n&#xe4;mlich eine Konvergenz geben">
<richcontent TYPE="NOTE"><html>
@ -81621,18 +81621,42 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node CREATED="1715725400796" ID="ID_1894647974" MODIFIED="1715725416576" TEXT="praktisch jeder custom-allocator kann standardkonform gemacht werden">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1716848820587" ID="ID_1737658277" MODIFIED="1716848847380" TEXT="neues Sprachkonzept: polymorphic allocator">
<icon BUILTIN="idea"/>
<icon BUILTIN="hourglass"/>
</node>
<node CREATED="1715693133661" ID="ID_868305899" MODIFIED="1715725332461" TEXT="Info zum Allocator-Gebrauch">
<node COLOR="#5b280f" CREATED="1716848776905" HGAP="16" ID="ID_1637486440" MODIFIED="1716848957326" TEXT="Fazit: dieses Framework ist nicht sonderlich praktisch" VSHIFT="9">
<icon BUILTIN="forward"/>
<node CREATED="1716848868061" ID="ID_1537515506" MODIFIED="1716848875063" TEXT="das Verdrahten ist relativ l&#xe4;stig"/>
<node CREATED="1716848876015" ID="ID_504316502" MODIFIED="1716848884566" TEXT="man bekommt jeweils einen Custom-Typ"/>
<node CREATED="1716848889017" ID="ID_1695312356" MODIFIED="1716848921617" TEXT="die Basis-Allokatoren sind nicht wirklich composable"/>
<node CREATED="1716848922493" ID="ID_1409034274" MODIFIED="1716848929111" TEXT="die Erweiterungspunkte sind verwirrend"/>
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1716848930106" ID="ID_721786657" MODIFIED="1716848951089" TEXT="Vorteil: ein Adapter ist extrem einfach bereitzustellen">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1715693133661" ID="ID_868305899" MODIFIED="1716848963266" TEXT="Info zum Allocator-Gebrauch">
<arrowlink COLOR="#4961d5" DESTINATION="ID_152113212" ENDARROW="Default" ENDINCLINATION="-2030;323;" ID="Arrow_ID_717223261" STARTARROW="None" STARTINCLINATION="-1527;135;"/>
<icon BUILTIN="info"/>
</node>
<node COLOR="#338800" CREATED="1716848707251" ID="ID_878895529" LINK="#ID_414891440" MODIFIED="1716848761004" TEXT="hab nun schon mal einen Entwurf f&#xfc;r Allocator-Concepts gemacht"/>
</node>
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#542b8e" CREATED="1715725538702" ID="ID_321800493" MODIFIED="1716849042711" TEXT="Beschlu&#xdf;">
<arrowlink COLOR="#d50a4b" DESTINATION="ID_1843463730" ENDARROW="Default" ENDINCLINATION="-825;-22;" ID="Arrow_ID_1401304077" STARTARROW="None" STARTINCLINATION="-751;154;"/>
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1715725550356" ID="ID_1829620474" MODIFIED="1716849002330" TEXT="der AllocationCluster wird &#x201e;entkernt&#x201c;">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1715725574935" ID="ID_258954925" MODIFIED="1716849006482" TEXT="umschreiben in einen einfachen linearen Allocator">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1715725607245" ID="ID_551473047" MODIFIED="1716849009682" TEXT="arbeitet auf verketteten Bl&#xf6;cken">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1715725617595" ID="ID_1306733411" MODIFIED="1716849010683" TEXT="diese bekommt man per Delegation an einen Basis-Allocator">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1715725538702" ID="ID_321800493" MODIFIED="1715725766650" TEXT="Beschlu&#xdf;">
<arrowlink COLOR="#d50a4b" DESTINATION="ID_1843463730" ENDARROW="Default" ENDINCLINATION="-825;-22;" ID="Arrow_ID_1401304077" STARTARROW="None" STARTINCLINATION="-712;193;"/>
<node CREATED="1715725550356" ID="ID_1829620474" MODIFIED="1715725571045" TEXT="der AllocationCluster wird &#x201e;entkernt&#x201c;"/>
<node CREATED="1715725574935" ID="ID_258954925" MODIFIED="1715725594242" TEXT="umschreiben in einen einfachen linearen Allocator"/>
<node CREATED="1715725607245" ID="ID_551473047" MODIFIED="1715725616887" TEXT="arbeitet auf verketteten Bl&#xf6;cken"/>
<node CREATED="1715725617595" ID="ID_1306733411" MODIFIED="1715725634916" TEXT="diese bekommt man per Delegation an einen Basis-Allocator"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1715627195825" ID="ID_40203233" MODIFIED="1715627201745" TEXT="Details festlegen">
@ -81890,11 +81914,11 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1711549131677" ID="ID_754465017" MODIFIED="1711549140633" TEXT="vorl&#xe4;ufig nutzbare Strukturen bereitstellen ">
<icon BUILTIN="flag-pink"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1682612056884" ID="ID_1219678116" MODIFIED="1715729457579" TEXT="Basis: AllocationCluster/Mem-Manager">
<arrowlink COLOR="#816f7b" DESTINATION="ID_688601712" ENDARROW="Default" ENDINCLINATION="95;-321;" ID="Arrow_ID_1440452458" STARTARROW="None" STARTINCLINATION="-521;38;"/>
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1715725466248" ID="ID_1843463730" LINK="https://issues.lumiera.org/ticket/1365" MODIFIED="1715725766650" TEXT="#1365 establish allocation scheme for render nodes">
<linktarget COLOR="#d50a4b" DESTINATION="ID_1843463730" ENDARROW="Default" ENDINCLINATION="-825;-22;" ID="Arrow_ID_1401304077" SOURCE="ID_321800493" STARTARROW="None" STARTINCLINATION="-712;193;"/>
<node COLOR="#338800" CREATED="1682612056884" ID="ID_1219678116" MODIFIED="1716848678808" TEXT="Basis: AllocationCluster/Mem-Manager">
<arrowlink COLOR="#4b5074" DESTINATION="ID_688601712" ENDARROW="Default" ENDINCLINATION="95;-321;" ID="Arrow_ID_1440452458" STARTARROW="None" STARTINCLINATION="-523;36;"/>
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1715725466248" ID="ID_1843463730" LINK="https://issues.lumiera.org/ticket/1365" MODIFIED="1716849042712" TEXT="#1365 establish allocation scheme for render nodes">
<linktarget COLOR="#d50a4b" DESTINATION="ID_1843463730" ENDARROW="Default" ENDINCLINATION="-825;-22;" ID="Arrow_ID_1401304077" SOURCE="ID_321800493" STARTARROW="None" STARTINCLINATION="-751;154;"/>
<icon BUILTIN="flag-yellow"/>
</node>
<node COLOR="#338800" CREATED="1715725787852" ID="ID_1127426666" MODIFIED="1715729452446" TEXT="neues einfacheres Interface einbauen">
@ -81907,21 +81931,24 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1715727163500" ID="ID_164792121" MODIFIED="1715727175958" TEXT="API">
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1715727163500" ID="ID_164792121" MODIFIED="1716848636576" TEXT="API">
<icon BUILTIN="info"/>
<node CREATED="1715727225764" ID="ID_123722889" MODIFIED="1715727230671" TEXT="getAllocator&lt;TY&gt;"/>
<node CREATED="1715727232648" ID="ID_597499360" MODIFIED="1715727238366" TEXT="create"/>
<node CREATED="1715727250709" ID="ID_886757416" MODIFIED="1715727252348" TEXT="size"/>
<node CREATED="1716848614943" ID="ID_1316151534" MODIFIED="1716848618330" TEXT="createDisposable"/>
<node CREATED="1715728180516" ID="ID_412948320" MODIFIED="1715728191170" TEXT="allot&lt;TY&gt;(cnt)"/>
<node CREATED="1715727255639" ID="ID_1782845675" MODIFIED="1715727439713" TEXT="allotMemory(size_t)"/>
<node CREATED="1715727250709" ID="ID_886757416" MODIFIED="1716848629262" TEXT="numExtents"/>
<node CREATED="1716848625509" ID="ID_1591269091" MODIFIED="1716848629261" TEXT="numBytes"/>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1715782501810" ID="ID_455348105" MODIFIED="1715782506785" TEXT="Verwendungen anpassen">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1715782501810" FOLDED="true" ID="ID_455348105" MODIFIED="1716848643157" TEXT="Verwendungen anpassen">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1715782508685" ID="ID_524633561" MODIFIED="1716828337676" TEXT="AllocationCluster selber mu&#xdf; weiterhin default-constructible sein">
<icon BUILTIN="yes"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1715782580806" ID="ID_1223928211" MODIFIED="1715782592605" TEXT="tats&#xe4;chliche Objekt-Erzeugungen nachvollziehen...">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1715782580806" ID="ID_1223928211" MODIFIED="1716848549405" TEXT="tats&#xe4;chliche Objekt-Erzeugungen nachvollziehen...">
<icon BUILTIN="button_ok"/>
<node CREATED="1715782747520" ID="ID_1770179360" MODIFIED="1715782759542" TEXT="node-basic-test: OK"/>
<node COLOR="#338800" CREATED="1715782790810" ID="ID_1391251855" MODIFIED="1716828317465" TEXT="linked-elements-test">
<icon BUILTIN="button_ok"/>
@ -81937,15 +81964,37 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
<node CREATED="1715815513228" ID="ID_1909349257" MODIFIED="1715815549523" TEXT="die NoOwnership-Policy wird dann zu einem speziellen Allocator"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1715782815501" ID="ID_845459708" MODIFIED="1715782818814" TEXT="Nodefactory">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#435e98" CREATED="1715782815501" ID="ID_845459708" MODIFIED="1716848408819" TEXT="Nodefactory">
<arrowlink COLOR="#59779b" DESTINATION="ID_71598768" ENDARROW="Default" ENDINCLINATION="-53;-25;" ID="Arrow_ID_427947563" STARTARROW="None" STARTINCLINATION="21;-1;"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1715782819622" ID="ID_232870110" MODIFIED="1715782823078" TEXT="Nodewiring">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#435e98" CREATED="1715782819622" ID="ID_232870110" MODIFIED="1716848408819" TEXT="Nodewiring">
<node CREATED="1716848323598" ID="ID_71598768" MODIFIED="1716848390679" TEXT="hier schon eine Verwendung (aber noch nicht tats&#xe4;chlich genutzt)">
<linktarget COLOR="#59779b" DESTINATION="ID_71598768" ENDARROW="Default" ENDINCLINATION="-53;-25;" ID="Arrow_ID_427947563" SOURCE="ID_845459708" STARTARROW="None" STARTINCLINATION="21;-1;"/>
<icon BUILTIN="forward"/>
</node>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1716848341907" ID="ID_1805821863" MODIFIED="1716848543786" TEXT="erzeugt Objekte per create &#x27f9; Destruktur wird aufgerufen">
<arrowlink COLOR="#e80a24" DESTINATION="ID_824702678" ENDARROW="Default" ENDINCLINATION="-204;-719;" ID="Arrow_ID_1436781934" STARTARROW="None" STARTINCLINATION="-267;13;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1715782594292" ID="ID_1272598890" MODIFIED="1715782612650" TEXT="pr&#xfc;fen: keinerlei Multithreading">
<icon BUILTIN="flag-yellow"/>
</node>
<node COLOR="#5b280f" CREATED="1715782594292" ID="ID_1272598890" MODIFIED="1716848588075" TEXT="pr&#xfc;fen: keinerlei Multithreading">
<icon BUILTIN="button_cancel"/>
<node BACKGROUND_COLOR="#c8c0b6" CREATED="1716848558489" ID="ID_1145216772" MODIFIED="1716848592121">
<richcontent TYPE="NODE"><html>
<head/>
<body>
<p>
naja... ehrlich gesagt,
</p>
<p>
es gibt noch gar keine Verwendungen
</p>
</body>
</html>
</richcontent>
<icon BUILTIN="ksmiletris"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1715725837111" ID="ID_1956366876" MODIFIED="1716659923208" TEXT="Basis-Allocation vorsehen">
@ -82245,23 +82294,25 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1715725950719" ID="ID_1150594476" MODIFIED="1715725971326" TEXT="Testf&#xe4;lle vereinfachen">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1715782655513" ID="ID_563670116" MODIFIED="1715782671674" TEXT="Basis-Testf&#xe4;lle anpassen">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1715782937567" ID="ID_1781763433" MODIFIED="1715782940506" TEXT="checkAllocation">
<node CREATED="1715782941338" ID="ID_1181401769" MODIFIED="1715782954296" TEXT="bef&#xfc;llt eine Menge von AllocationClustern"/>
<node CREATED="1715782956114" ID="ID_1377313031" MODIFIED="1715782963361" TEXT="Checksumme mu&#xdf; nacher stimmen"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1715782964658" ID="ID_591639407" MODIFIED="1715782969617" TEXT="Typ/API-Anpassungen">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1715725950719" FOLDED="true" ID="ID_1150594476" MODIFIED="1716848654942" TEXT="Testf&#xe4;lle vereinfachen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1715782655513" ID="ID_563670116" MODIFIED="1716837163217" TEXT="Basis-Testf&#xe4;lle anpassen">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#c8c0b6" CREATED="1716837123244" ID="ID_471394754" MODIFIED="1716837128759" TEXT="simpleUsage"/>
<node BACKGROUND_COLOR="#c8c0b6" CREATED="1715782937567" ID="ID_1781763433" MODIFIED="1716837141630" TEXT="checkLifecycle">
<node COLOR="#435e98" CREATED="1715782941338" ID="ID_1181401769" MODIFIED="1716837158779" TEXT="bef&#xfc;llt eine Menge von AllocationClustern"/>
<node COLOR="#435e98" CREATED="1715782956114" ID="ID_1377313031" MODIFIED="1716837158780" TEXT="Checksumme mu&#xdf; nacher stimmen"/>
<node COLOR="#435e98" CREATED="1716837145438" ID="ID_1225570538" MODIFIED="1716837158780" TEXT="Variante ohne Destruktoren dokumentieren"/>
<node COLOR="#338800" CREATED="1715782964658" ID="ID_591639407" MODIFIED="1716837104464" TEXT="Typ/API-Anpassungen">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1715782638192" ID="ID_811924052" MODIFIED="1715782653285" TEXT="Tests mit Multithreading-Bezug zur&#xfc;ckbauen">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1715782638192" ID="ID_811924052" MODIFIED="1716837165574" TEXT="Tests mit Multithreading-Bezug zur&#xfc;ckbauen">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1715783068923" ID="ID_34296369" MODIFIED="1715783077530" TEXT="Tests f&#xfc;r Error-Handling zur&#xfc;ckbauen">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1715783068923" ID="ID_34296369" MODIFIED="1716837166410" TEXT="Tests f&#xfc;r Error-Handling zur&#xfc;ckbauen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1716130852555" ID="ID_1309770620" MODIFIED="1716659827935" TEXT="Test f&#xfc;r interne low-level-Mechanismen">
<icon BUILTIN="button_ok"/>
@ -82302,8 +82353,50 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1715782674401" ID="ID_1481008630" MODIFIED="1715782690591" TEXT="neue Tests f&#xfc;r Verwendung mit STL-Container">
<node COLOR="#338800" CREATED="1715782674401" ID="ID_1481008630" MODIFIED="1716848153300" TEXT="neue Tests f&#xfc;r Verwendung mit STL-Container">
<icon BUILTIN="button_ok"/>
<node CREATED="1716846788487" ID="ID_1129405725" MODIFIED="1716846796774" TEXT="gar nicht so einfach...."/>
<node CREATED="1716847018389" ID="ID_417389305" MODIFIED="1716847034470" TEXT="f&#xfc;r alle Container mu&#xdf; man jeweils den passenden Allocator-Typ explizit angeben"/>
<node CREATED="1716847036682" ID="ID_1524424449" MODIFIED="1716847056932" TEXT="interssant: die STL verwendet meinen x-copy-Konstruktor (yikes!)">
<icon BUILTIN="ksmiletris"/>
</node>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1716846798122" ID="ID_230858153" MODIFIED="1716847061303" TEXT="das harte Extent-Limit wird schnell gerissen">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1716846820959" ID="ID_772114963" MODIFIED="1716846825066" TEXT="Vector">
<node CREATED="1716846825838" ID="ID_716865673" MODIFIED="1716846880100" TEXT="logarithmisches Wachstum &#x27f9; zu gro&#xdf;es zusammenh&#xe4;ngendes Array gefordert"/>
<node CREATED="1716846887726" ID="ID_1427609847" MODIFIED="1716846899524" TEXT="verwende kleine Einzel-Elemente: uint16_t"/>
<node CREATED="1716846900564" ID="ID_799164042" MODIFIED="1716846920533" TEXT="trotzdem: bei 64 Elementen ist Schlu&#xdf; (*2 = 128)"/>
</node>
<node COLOR="#5b280f" CREATED="1716846944942" ID="ID_1154545328" MODIFIED="1716847077292" TEXT="Deque">
<icon BUILTIN="closed"/>
<node CREATED="1716846947854" ID="ID_1158056924" MODIFIED="1716846981789" TEXT="alloziert sofort mal einen Node-Buffer mit 500 Bytes"/>
<node COLOR="#5b280f" CREATED="1716846982329" ID="ID_1449766450" MODIFIED="1716847070445" TEXT="und tot issr">
<icon BUILTIN="smiley-oh"/>
</node>
</node>
<node CREATED="1716847199636" ID="ID_1879209614" MODIFIED="1716847201416" TEXT="String">
<node CREATED="1716847202956" ID="ID_1135376226" MODIFIED="1716847213879" TEXT="ist zum Gl&#xfc;ck interoperabel mit std::string"/>
<node CREATED="1716847214890" ID="ID_1711652015" MODIFIED="1716847224686" TEXT="man kann z.B. einen normalen String hineinkopieren"/>
<node CREATED="1716847225321" ID="ID_1122506163" MODIFIED="1716847247657" TEXT="oder normale String-Ausgabe verwenden (copy &#x27f6; heap)"/>
</node>
<node CREATED="1716848100532" ID="ID_362022000" MODIFIED="1716848102056" TEXT="Set">
<node CREATED="1716848102971" ID="ID_911111344" MODIFIED="1716848115654" TEXT="ist problemlos, da ein Baum mit Einzel-Nodes"/>
<node CREATED="1716848116146" ID="ID_917037095" MODIFIED="1716848126124" TEXT="konte im Test 500 Elemente einf&#xfc;gen"/>
</node>
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#338800" CREATED="1716848135503" ID="ID_1453304826" MODIFIED="1716848165475" TEXT="verifiziert: Daten in der ersten Allokation bleiben intakt">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1716848462075" ID="ID_1540153344" MODIFIED="1716848472810" TEXT="Node-Factory initial zum Laufen bekommen">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1716848474537" ID="ID_1555891965" MODIFIED="1716848492129" TEXT="Allokation nochmal analysieren">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1716848493382" ID="ID_824702678" MODIFIED="1716848538851" TEXT="kl&#xe4;ren: kann man auf dtor-Aufrufe verzichten?">
<linktarget COLOR="#e80a24" DESTINATION="ID_824702678" ENDARROW="Default" ENDINCLINATION="-204;-719;" ID="Arrow_ID_1436781934" SOURCE="ID_1805821863" STARTARROW="None" STARTINCLINATION="-267;13;"/>
<icon BUILTIN="help"/>
</node>
</node>
</node>
@ -82473,9 +82566,9 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node CREATED="1680563454868" ID="ID_1187556686" MODIFIED="1680563459014" TEXT="Backbone"/>
<node CREATED="1680563460649" ID="ID_127710483" MODIFIED="1715624384997" TEXT="MemManagement">
<arrowlink COLOR="#454059" DESTINATION="ID_1595450559" ENDARROW="Default" ENDINCLINATION="-1036;-77;" ID="Arrow_ID_1704085390" STARTARROW="None" STARTINCLINATION="-161;430;"/>
<node CREATED="1715623566743" ID="ID_688601712" MODIFIED="1716677717812" TEXT="AllocationCluster">
<node CREATED="1715623566743" ID="ID_688601712" MODIFIED="1716848678808" TEXT="AllocationCluster">
<linktarget COLOR="#5e576b" DESTINATION="ID_688601712" ENDARROW="Default" ENDINCLINATION="-933;-99;" ID="Arrow_ID_1200230919" SOURCE="ID_1849931457" STARTARROW="None" STARTINCLINATION="-758;59;"/>
<linktarget COLOR="#816f7b" DESTINATION="ID_688601712" ENDARROW="Default" ENDINCLINATION="95;-321;" ID="Arrow_ID_1440452458" SOURCE="ID_1219678116" STARTARROW="None" STARTINCLINATION="-521;38;"/>
<linktarget COLOR="#4b5074" DESTINATION="ID_688601712" ENDARROW="Default" ENDINCLINATION="95;-321;" ID="Arrow_ID_1440452458" SOURCE="ID_1219678116" STARTARROW="None" STARTINCLINATION="-523;36;"/>
<linktarget COLOR="#816f7b" DESTINATION="ID_688601712" ENDARROW="Default" ENDINCLINATION="95;-321;" ID="Arrow_ID_859179840" SOURCE="ID_303611553" STARTARROW="None" STARTINCLINATION="-264;24;"/>
<node CREATED="1715786334834" ID="ID_885525745" MODIFIED="1715786341860" TEXT="Design / Systematik">
<node CREATED="1715786372102" ID="ID_1591071302" MODIFIED="1715786382355" TEXT="Aufwand f&#xfc;r Memory-Management wird geb&#xfc;ndelt"/>