我想将这些字符串向量存储为 4 维向量。我已经搜索了三天,但我无法决定是否使用多维向量、提升多数组、结构数组……我对 cpp 很陌生,他们很困惑。
vector < string >ID;
vector < string > firstName;
vector < string > lastName;
vector < string > address;
vector<vector<vector<vector<string> >>> person ;
我应该为人口稠密的人做些什么?
我想将这些字符串向量存储为 4 维向量。我已经搜索了三天,但我无法决定是否使用多维向量、提升多数组、结构数组……我对 cpp 很陌生,他们很困惑。
vector < string >ID;
vector < string > firstName;
vector < string > lastName;
vector < string > address;
vector<vector<vector<vector<string> >>> person ;
我应该为人口稠密的人做些什么?
正如@hansmaad 所建议的那样
以下将是一个更简单和更好的实现(与覆盖维向量相比),用于在您的程序中存储个人详细信息。
将一个人定义为:
struct person {
std::string id;
std::string first_name;
std::string last_name;
std::string address;
};
并将您的定义vector
为:
std::vector< person > people;
在您的情况下,创建多维数组没有意义。我宁愿尝试:
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;
}
数组的结构可能是!或者为了更好的可读性和可变代码使用一个类