|
Blender V5.0
|
#include <BLI_linear_allocator_chunked_list.hh>
Inherits blender::NonCopyable.
Classes | |
| class | ConstIterator |
| class | MutableIterator |
Public Member Functions | |
| ChunkedList ()=default | |
| ChunkedList (ChunkedList &&other) | |
| ~ChunkedList () | |
| ChunkedList & | operator= (ChunkedList &&other) |
| void | append (LinearAllocator<> &allocator, const T &value) |
| void | append (LinearAllocator<> &allocator, T &&value) |
| template<typename... Args> | |
| void | append_as (LinearAllocator<> &allocator, Args &&...args) |
| ConstIterator | begin () const |
| ConstIterator | end () const |
| MutableIterator | begin () |
| MutableIterator | end () |
This is a special purpose container data structure that can be used to efficiently gather many elements into many (small) lists for later retrieval. Insertion order is not maintained.
To use this data structure, one has to have a separate LinearAllocator which is passed to the append function. This allows the same allocator to be used by many lists. Passing it into the append function also removes the need to store the allocator pointer in every list.
It is an improvement over Vector because it does not require any reallocations. VectorList could also be used to overcome the reallocation issue.
This data structure is also an improvement over VectorList because:
Definition at line 55 of file BLI_linear_allocator_chunked_list.hh.
|
default |
Referenced by ChunkedList(), and operator=().
|
inline |
Definition at line 63 of file BLI_linear_allocator_chunked_list.hh.
References ChunkedList().
|
inline |
Definition at line 69 of file BLI_linear_allocator_chunked_list.hh.
|
inline |
Add an element to the list. The insertion order is not maintained. The given allocator is used to allocate any extra memory that may be needed.
Definition at line 98 of file BLI_linear_allocator_chunked_list.hh.
References append_as(), and T.
Referenced by blender::linear_allocator::tests::TEST(), blender::linear_allocator::tests::TEST(), and blender::linear_allocator::tests::TEST().
|
inline |
Definition at line 103 of file BLI_linear_allocator_chunked_list.hh.
References append_as(), and T.
|
inline |
Definition at line 108 of file BLI_linear_allocator_chunked_list.hh.
References blender::LinearAllocator< Allocator >::construct(), blender::linear_allocator::ChunkedListSegment< T, Capacity >::next, and T.
|
inline |
Definition at line 183 of file BLI_linear_allocator_chunked_list.hh.
|
inline |
Definition at line 173 of file BLI_linear_allocator_chunked_list.hh.
|
inline |
Definition at line 188 of file BLI_linear_allocator_chunked_list.hh.
|
inline |
Definition at line 178 of file BLI_linear_allocator_chunked_list.hh.
|
inline |
Definition at line 84 of file BLI_linear_allocator_chunked_list.hh.
References ChunkedList().