Я хочу хранить эти строковые векторы как четырехмерный вектор. Я искал три дня, и я не могу решить, использовать ли многомерный вектор, увеличить множественный массив, массив структуры, …
Я так новичок в cpp, и они так запутаны.
vector < string >ID;
vector < string > firstName;
vector < string > lastName;
vector < string > address;
vector<vector<vector<vector<string> >>> person ;
что я должен сделать для населяющего человека?
В вашем случае нет смысла создавать многомерный массив. Я бы лучше попробовал:
class Person
{
public:
string Id;
string firstName;
string lastName;
string address;
};
(...)
vector<Person> People;
// Adding
Person p;
p.Id = "1234";
People.push_back(p);
// Count
std::cout << "Currently you have " << People.size() << " people in the database";
// Access
Person p1 = People[0];
Редактировать: В ответ на комментарии
Довольно сложно ответить на вопрос без каких-либо подробностей о вашей проблеме. Из того, что я мало знаю об этом, я, вероятно, перейду к мультиклассовой версии:
class Id
{
public:
int Value;
std::vector<FirstName> Names;
}
class FirstName
{
public:
string Value;
std::vector<SecondName> SecondNames;
}
class SecondName
{
public:
string Value;
std::vector<Address> Addresses;
}
class Address
{
public:
string Value;
}
По предложению @hansmaad
Следующее будет более простой и лучшей реализацией (по сравнению с многомерными векторами) для хранения личных данных в вашей программе.
Определить человека как:
struct person {
std::string id;
std::string first_name;
std::string last_name;
std::string address;
};
И определите свой vector
как:
std::vector< person > people;
структура массивов может быть! Или для лучшего читаемого и изменяемого кода используйте класс