using std::vector::data() to get data pointer