definicja vectora będącego członkiem klasy

0

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;
}
1

A czego się spodziewałeś jeśli do vectora, który przechowuje obiekty klasy PartErrors, próbujesz wsadzić inta

0

Ok, faktycznie głupio to zrobiłem. Aczkolwiek nie mam pomysłu gdzie i jak mógłbym normalnie zadeklarować vector wraz z wielkością na dane np.

std::vector<PartErrors>errors(sequenceNumber)

Jest to mój pierwszy program z wykorzystaniem klasy szablonowej vector.

4

zamiast:

        data.errors.push_back(data.header.sequenceNumber); //tu się sypie

zrób:

        data.errors.resize(data.header.sequenceNumber);

1 użytkowników online, w tym zalogowanych: 0, gości: 1