I don't think you need anything extra than what the vector<> already supplies. All you need is just build the vector<> from an array of structures and then get that back. Right?

For the former, use the member function, assign and for the latter - you can pass the address of the first member of the vector<> to the API and the length of the vector<> as the size. That's all you need. Isn't it, or do you need anything extra apart from that?

What are the motivations for this extension, what interface do you want to add to std::vector<> specifically?