Why not just use std::vector?