
#cpp #algorytmy
Siema, staram sie zaimplementowac algorytm Prima dla minimalnego drzewa rozpinającego, mój problem pojawia sie w miejscu, gdzie sprawdzam jakie krawędzie należą do danego wierzchołka.
Niby jak siedze w środku funkcji to wszystko ok, jednak jak tylko jej działąnie dobiegnie końca to vector, który podaje jako ostatni argument funkcji nagle staje sie pusty. Nie mam pojęcia dlaczego
Wywołanie w mainie:
chciałbym potem robić dalsze operacje na wektorze 'vectorConnections', jednak ja wspominałem jest on pusty (w ciele funkcji zapełnia sie poprawnie, sprawdzałem pod debbugerem)
Ktoś coś? z góry dzięki za jakiekolwiek wskazówki
Siema, staram sie zaimplementowac algorytm Prima dla minimalnego drzewa rozpinającego, mój problem pojawia sie w miejscu, gdzie sprawdzam jakie krawędzie należą do danego wierzchołka.
Niby jak siedze w środku funkcji to wszystko ok, jednak jak tylko jej działąnie dobiegnie końca to vector, który podaje jako ostatni argument funkcji nagle staje sie pusty. Nie mam pojęcia dlaczego
void getConnections(Apex apex, Connection* arrayConnections, int arraySize, std::vector vectorConnections) {
int apexNumber = apex.number;
int tmpWage;
Connection tmpConnection;
for (int i = 0; i < arraySize; i++) {
tmpWage = arrayConnections[i].wage;
if (arrayConnections[i].firstApexNumber == apexNumber || arrayConnections[i].secondApexNumber == apexNumber) {
if (vectorConnections.size() == 0) {
tmpConnection = arrayConnections[i];
vectorConnections.push_back(tmpConnection);
arrayConnections[i].isUsed = true;
}
else {
for (int j = 0; j < vectorConnections.size(); j++) {
if (arrayConnections[i].isUsed == true) {
std::cout << "this connection is already in vector: " << arrayConnections[i] << std::endl;
}
else {
tmpConnection = arrayConnections[i];
vectorConnections.push_back(tmpConnection);
arrayConnections[i].isUsed = true;
}
}
}
}
}
std::sort(vectorConnections.begin(), vectorConnections.end(), Connection());
}Wywołanie w mainie:
getConnections(arrayApex[1], arrayConnections, numberOfConnections, vectorConnections);chciałbym potem robić dalsze operacje na wektorze 'vectorConnections', jednak ja wspominałem jest on pusty (w ciele funkcji zapełnia sie poprawnie, sprawdzałem pod debbugerem)
Ktoś coś? z góry dzięki za jakiekolwiek wskazówki
- Najlepsze
- Wszystkie komentarze







@Lacwik: tworzysz kopie vectorConnections, uzyj referencji std::vector& vectorConnections