Если вы знаете, что их трое и знаете их типы, почему бы просто не написать класс?
class Data
{
std::vector<std::string> _strings;
std::vector<double> _doubles;
std::vector<UserDefined> _userDefined;
public:
// ...
};
Это также дало бы некоторую сильную семантику (вектор не связанных вещей кажется странным, на мой взгляд).