vector wskaźników na obiekty klasy - allokacja

0

Hej,

plik .h wygląda tak:

 
...
int Len;
int *tab;
vector<Apex*> Data;
...

.cpp tak:

BinaryHeap::BinaryHeap()
{
	Len = 0;
}

BinaryHeap::BinaryHeap(int size)
{
	Len = 0;
	tab = new int[size];
	
	//Tutaj chcę dać Data = new...
	
	for (int i = 0; i < size; i++)
	{
		tab[i] = -1;
	}
}

Pytanie, co wpisać w Data = new... by program się nie wywalał przy allokacji vectora?

0

No ale Ty już masz utworzony ten wektor :P
Deklaracja pola w ten sposób wymusza skonstruowanie wektora Data w konstruktorze BinaryHeap.

0

Btw, boost::ptr_vector

0

Problem w tym że tworząc nowy vector zaczytuje jakieś syfy z pamięci.

1

Napisz co chcesz osiągnąć t.j. jaki stan ma mieć ten wektor po wyjściu z konstruktora.

0

Chcę mieć pusty vector, bez żadnego wskaźnika w środku, do którego będę robił push_back, ew podmieniał obiekty w danych indeksach

0
Derech napisał(a):

Chcę mieć pusty vector, bez żadnego wskaźnika w środku, do którego będę robił push_back,
Jak nic nie będziesz robił z tym wektorem w konstruktorze, to tak będziesz miał.

ew podmieniał obiekty w danych indeksach
Jak wektor jest pusty to nie masz żadnych indeksów.

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