Что вы на самом деле пытаетесь сделать?
Обычно пользователям нет дела до имен переменных. То, что вы можете делать, - это хранить разные векторы с разными пользовательскими ключами:
map<string, vector<int> > user_vectors;
while (true) {
string key = GetNameFromUserInput();
int value = GetValueFromUserInput();
user_vectors[key].push_back(value);
}
Судя по отредактированному описанию проблемы, вам действительно не нужны векторы.
map<string, inventory> inventory_map;
while (!done) {
string item_name;
cin >> item_name;
inventory item;
cin >> item.itemDescription;
cin >> item.quantityOnHand;
...;
inventory_map[item_name] = item;
}
for (map<string, inventory>::const_iterator it = inventory_map.begin();
it != inventory_map.end(); ++it) {
cout << "Inventory contains: " << it->first
<< " described as: " << it->second.description;
}