Is there a (N-D) contiguous data structure for non-trivial structs?
I need a data strucuture that is a 2-dimensional array of (inline) lists of pairs. That is, if
subdata = data[i][j], then subdata is a dynamic data structure that contains tuples of size 2.
My take on solving this was to use a Tensor for the 2-D data structure, an InlinedFixedVector for the flexible part, and a StaticTuple for the pair.
However, I get the following error:
I figure that Tensors can only hold trivial data types. If so, is there a good general data structure for multi-dimensional data? I was thinking of putting InlineList into a self-made 2D represntation of List, but InlineList does not implement CollectionElement (as of yet?).4 Replies
https://docs.modular.com/mojo/stdlib/utils/static_tuple/InlineArray
InlineArray[InlineArray[T, N], M] for an M by N 2d array.
InlineArray | Modular Docs
A fixed-size sequence of size homogeneous elements where size is a constant expression.
Thanks! Hmm... I do not know the size of the outer array at compile time. Is there an alternative with dynamic memory?
List will put it all behind one pointer, but you probably want that anyways.
Yes, I think in principle,
List is not too bad for the "outer" array (except that I need to wrap it into a 2D structure around for simple access). I guess this is the easiest approach if no one else has done the work so far...
Then the only remaining question would be which container provides inline-vector-like functionality but can hold tuples and implements CollectionElement