So let's see what the WTFs basically are...
I would add:
- Creating the std::vectors with new, where they would better be created on the stack. Its not like one of the vectors benefits is that it takes away the memory management for dynamic arrays.
- Returning both vectors as non-const pointer, basically breaking every concept of encapsulation of that class. Especially hard since both vectors are meant to store dependant values for one entry, imagine someone deleting values out of only the Value-vector.
- Also, returning the vectors by pointer instead of reference when they can never be nullptr.