c ++多维向量

时间:2013-11-27 09:26:51

标签: c++ multidimensional-array boost-multi-array

我想将这些字符串向量存储为4维向量。我正在搜索三天,我无法决定是否使用多维向量,提升多数组,结构数组,... 我对cpp很新,他们很混乱。

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

我该怎样做才能填补这个人?

3 个答案:

答案 0 :(得分:2)

正如@hansmaad所建议的

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

将某人定义为:

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

并将您的vector定义为:

std::vector< person > people;

答案 1 :(得分: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;
}

答案 2 :(得分:0)

阵列的结构可能是!或者为了更好的可读性和可更改代码,请使用类