Skip to content

Instantly share code, notes, and snippets.

View arizenelm's full-sized avatar

arizenelm

View GitHub Profile
@arizenelm
arizenelm / get_chunks.cpp
Created April 6, 2024 15:12
C++20 get_chunks()
template<random_access_range range_type>
auto get_chunks(range_type rng, int n_chunks)
{
using begin_t = decltype(ranges::begin(rng));
using end_t = decltype(ranges::end(rng));
using chunk_t = subrange<begin_t, end_t>;
vector<chunk_t> chunks(n_chunks);
size_t offset = 0;
size_t container_size = rng.end() - rng.begin();
size_t count = container_size / n_chunks + container_size % n_chunks;