如何遍历向量以生成新对象?

How can I iterate through a vector to generate new objects?

我已经从一个相对较大的 CSV 文件生成了一个矢量,并且需要从每一行中创建对象。问题是,有 102 列,所以手动编写对象参数是不可能的。

Data colNames;

for (int i = 0; i < 1; i++) {
    for (int j = 0; j < content[i].size(); j++) {
        string column = "col" + j;
        colNames.column = content[i][j];

    }
}

显然,我的语法是错误的,但尽管 google 搜索了很长时间,我还没有找到真正可以做到这一点的东西。

要创建的对象非常简单:每一列都有自己的值:

class Data
{
public:
    string col0;
    string col1;
    string col2;
    string col3;
    string col4;
    string col5;
    string col6;
    string col7;
    string col8;
    string col9;
    string col10;
    string col11;
    string col12;
    string col13;
    string col14;
         (...)

换句话说,对于 j = 0,需要更新 colNames.col0,依此类推。

我猜您想做的是使用带有 string 键的 std::map。例如:

std::map<std::string, std::string> colNames;

for (size_t i = 0; i < 1; i++) {
    for (size_t j = 0; j < content[i].size(); j++) {
        std::string column = "col" + std::to_string(j);
        colNames[column] = content[i][j];

    }
}

你看过std::vector了吗?

的容器。要使用的容器是 std::vector.

我们将使用两个结构:Data_HeadersData_Rows:

struct Data_Headers
{
    std::vector<std::string> column_headers;
};
struct Data_Rows
{
    std::vector</* data type */> column_data;
};

您可以通过以下方式访问该行的数据:

Data_Type column1_data = row.column_data[0];