Witajcie,
Jak poprawnie należy zdefiniować wielkość vectora będącego członkiem klasy?
Potrzebuję stworzyć wektor o rozmiarze takim jak zmienna sequenceNumber ze struktury header. Metoda push_back wywala błąd:
2 IntelliSense: no instance of overloaded function "std::vector<_Ty, _Alloc>::push_back [with _Ty=PartErrors, _Alloc=std::allocator<PartErrors>]" matches the argument list
argument types are: (int)
object type is: std::vector<PartErrors, std::allocator<PartErrors>>
Moje pliki:
Defines.h
#pragma once
#include <string>
#include <vector>
struct Header {
std::string name;
std::string date;
std::string vin;
int sequenceNumber;
std::string type;
};
struct Error {
float vol;
bool result;
};
struct PartErrors {
Error dx;
Error dy;
};
class FileErrorData{
public:
Header header;
std::vector<PartErrors>errors;
std::string path;
public:
FileErrorData();
void FillData(void);
};
Raport.cpp
#include "stdafx.h"
#include "Defines.h"
int _tmain(int argc, _TCHAR* argv[])
{
FileErrorData data;
data.header.name = "Rhenus SCR Raport";
data.header.date = "06.07.2017";
data.header.vin = "123456789abcdefghijk";
data.header.sequenceNumber = 13;
data.header.type = "chukgowie";
data.errors.push_back(data.header.sequenceNumber); //tu się sypie
for (int i = 0; i < 6; i++) {
data.errors[i].dx.vol = 12.34;
data.errors[i].dx.result = 1;
}
for (int i = 6; i < 13; i++) {
data.errors[i].dx.vol = 1;
data.errors[i].dx.result = 0;
}
data.path = "C:\\Users\\MK\\Desktop";
return 0;
}