Вы инициализируете свои строки значением прежде, чем добавить их в вектор?Как вы их читаете?По коду я предполагаю, что вы перебираете вектор с помощью std :: cin, получая значения.Если это так - передайте указатели на вектор вместо значений.
/*vec declaration*/
std::string firstname, lastname, country, city, street, phone;
std::vector<std::string*> user{ &firstname, &lastname, &country, &city, &street, &phone};
...
/*reading*/
for(auto i : user)
std::cin >> *i;
...
/*then you can access them from the desired string*/
std::cout << firstname; // will print firstname that you've read
SUGGESTION1: Используйте array / std :: array, если вы знаете размер контейнера.Vector следует использовать, когда вы знаете, что ваш контейнер будет увеличиваться в размере (добавление / удаление новых элементов).
SUGGESTION2: лучше было бы использовать структуру для пользователя - вам будет легче как управлять, так и читатькод позже, поэтому f.ex:
struct User
{
std::string firstname,
lastname,
country,
city,
street,
phone;
}
А затем используйте vector, чтобы хранить всех ваших пользователей в одном контейнере.Вы всегда можете использовать вторичный вектор, как сейчас, если вам легче читать его таким образом.