Witam,
od paru godzin siedzę i walczę, i nic... W czym problem? Ot piszę program na zaliczenie (algorytm szeregowania zadań). Chciałem to zrobić tak jak przedstawiłem w kodzie, czyli:
- struktura SProcess, która przechowuje czas stygnięcia, czas wykonywania i czas dostarczenia, dla pojedynczego zadania.
- jakis zbiornik do przechowywania dowolnej liczby zadan (u mnie nazywa sie on TVector i jest szablonem).
- wektor o dlugosci jak pkt wyżej, przechowywujący inty'y będące indexami do pól wektora z pkt. wyzej.
- klasa, ktora rozwiazywalaby problem, a w niej dwa pola-wskaźniki na powyższe wektory plus metody.
Obkodowałem to tak:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
struct SProcess{
int r;
int p;
int q;
};
template <class T> class TVector{
public:
T *data;
int m_nRozmiar;
TVector(){ };
TVector(int);
~TVector( ) { delete[ ] data; }
T& operator[ ] (int i) { return data[i]; } //przeciazany operator []
int GetSize(){return m_nRozmiar;}
};
template <class T> TVector<T>::TVector(int n){
data = new T[n];
m_nRozmiar = n;
};
class CFlowshop{
public:
TVector<SProcess> *pTasks;
TVector<int> *Index;
int iCmax;
CFlowshop(TVector<SProcess> *pVector,TVector<int> *pIndex);
~CFlowshop(){ };
};
CFlowshop::CFlowshop(TVector<SProcess> *pVector,TVector<int> *pIndex){
cout<<pVector->GetSize();
TVector<int> Index(pVector->GetSize());
for(int i=0;i<(pVector->GetSize());i++){
}
}
Problem mam w konstruktorze klasy CFlowshop - w jaki sposób korzystać z wskaźników pIndex i pVector??? Chodzi mi o wstawianie i odczytywanie wartości z konkretnych pól obydwu kolekcji, czyli np. jesli main wygladalby tak:
int main(){
(...)
TVector<SProcess> Zadania(5);
TVector<SProcess> *wsk;
*wsk=&Zadania;
}
To w jaki sposb przypisac lub odczytac przy uzycia wskaznika wsk wartoc np Zadania[3].r???
Może dodam jeszcze, że piszę pod linuxwm w code blocks'ie, kompilowane tymże przy użyciu gcc.
Z góry dzięki,
Kamil