矢量结构的c++结构

问题描述 投票:-1回答:1

我试图更好地理解结构,我需要一些帮助。我想创建一个包含一个结构向量的结构,但我在连接它们时遇到了麻烦。到目前为止,我得到了。

struct Vehicle{
    string LicensePlate;
    string VehicleType;
    vector<string> DamageType;
    int EstFixDays;
}veh;

struct DailyCustomers{
    string date;
    struct Vehicle vehicleList;
}dlc;

int main(){
  vector<Vehicle> vehicleList;
  struct DailyCustomers dlc;
  dlc.date = fileVector[1];
  for (int i = 1; i < fileVector.size(); i++){
      stringDevide(fileVector[i]);
      struct Vehicle veh;
      veh.LicensePlate = licensePlate;
      veh.VehicleType = vehicleType;
      veh.DamageType = vehicleDamageType;  
      veh.EstFixDays = est; 
      vehicleList.push_back(veh);
  }
  dlc.vehicleList = veh;
}

我的程序似乎运行得很好,因为结构的链接没有影响到它, 但我不确定我是否正确地把它们连接在一起了。最后一行应该是在 for 循环?

任何帮助非常感激.谢谢你。

c++ c++11 struct
1个回答
2
投票

你并没有创建一个包含一个结构向量的结构。你所做的只是创建了一个包含一个结构的结构。你确实有一个结构的向量,但那是在main中,而不是在任何结构中。

你还有其他一些问题,你没有使用全局变量,还有不必要的 struct 的用途。

下面是你应该怎么做

struct Vehicle {
    string LicensePlate;
    string VehicleType;
    vector<string> DamageType;
    int EstFixDays;
};

struct DailyCustomers {
    string date;
    vector<Vehicle> vehicleList; // a vector of structs inside a struct
};

int main() {
    DailyCustomers dlc;
    dlc.date = fileVector[1];
    for (int i = 1; i < fileVector.size(); i++) {
        stringDevide(fileVector[i]);
        Vehicle veh;
        veh.LicensePlate = licensePlate;
        veh.VehicleType = vehicleType;
        veh.DamageType = vehicleDamageType;  
        veh.EstFixDays = est; 
        dlc.vehicleList.push_back(veh);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.