$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Mehrdad Niknami (mniknami_at_[hidden])
Date: 2021-01-04 12:17:00
Hi all,
Happy new year! New mailing list member here.
I've developed an STL-style stationary_vector class that retains elements
in-place when growing.
Very briefly, it is effectively a piecewise-contiguous vector, with the
following advantages over vector:
- Appending has O(1) overhead in the *worst* case (e.g., push_back() does
not move elements)
- Insertion and random-access can be done in parallel, as prior
iterators & references remain valid
This has a variety of benefits, including better UX (no "hiccups" due to
reallocations), and the ability to simplify parallel processing of
streaming data.
It occurred to me the larger C++ community might find this useful.
I was wondering if there would be interest in incorporating it into
Boost.Container, and if so, what steps I could take to make that happen?
I'm of course happy to discuss the design etc. with anyone who might be
interested.
Summary:
https://github.com/mehrdadn/libvital/blob/master/doc/vital/container/stationary_vector.md
Implementation:
https://github.com/mehrdadn/libvital/blob/master/include/vital/container/stationary_vector.hpp
Thank you,
Mehrdad