0

我想将这些字符串向量存储为 4 维向量。我已经搜索了三天,但我无法决定是否使用多维向量、提升多数组、结构数组……我对 cpp 很陌生,他们很困惑。

vector < string >ID;
vector < string > firstName;
vector < string > lastName;
vector < string > address;
vector<vector<vector<vector<string> >>> person ;

我应该为人口稠密的人做些什么?

4

3 回答 3

2

正如@hansmaad 所建议的那样

以下将是一个更简单和更好的实现(与覆盖维向量相比),用于在您的程序中存储个人详细信息。

将一个人定义为:

struct person {
    std::string id;
    std::string first_name;
    std::string last_name;
    std::string address;
};

并将您的定义vector为:

std::vector< person > people;
于 2013-11-27T09:33:47.893 回答
1

在您的情况下,创建多维数组没有意义。我宁愿尝试:

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;
}
于 2013-11-27T09:32:54.940 回答
0

数组的结构可能是!或者为了更好的可读性和可变代码使用一个类

于 2013-11-27T09:33:29.927 回答