Kopiowanie wektora

0

Cześć wam, mam problem z vectorem otóż stworzyłem sobie klase

class Graf
{
public:
    string etykieta;
    int waga;
    vector <Graf*> ListaEtykiet;
    Graf(string nazwa)
    {
      etykieta = nazwa;
    }
    Graf(string nazwa,int w)
    {
      waga =w;
      etykieta = nazwa;
    }

};

później zadeklarowałem obiekty

vector< Graf*> Wierzcholek;
vector< Graf*> Wierzcholek2;

i zrobiłem sobie funkcje, która tworzy listę wszystkich krawędzi w grafie

void wrzuc( /*Graf *w, vector <Graf*> Tab*/)
{
  Wierzcholek2=Wierzcholek;
  Graf *wierzch;
  string w1, w2;
  int i,j,k,l;
  for(i = 0;i<Wierzcholek2.size();i++)
  {
    for(j = 0;j<Wierzcholek2[i]->ListaEtykiet.size();j++)
    {
     for(k=i+1;k<Wierzcholek2.size();k++)
     {
       for(l=0 ;l<Wierzcholek2[k]->ListaEtykiet.size();l++)
       {
        if (strcmp(Wierzcholek2[i]->etykieta.c_str(),Wierzcholek2[k]->ListaEtykiet[l]->etykieta.c_str())==0
           &&Wierzcholek2[i]->ListaEtykiet[j]->waga==Wierzcholek2[k]->ListaEtykiet[l]->waga)
        {
          wierzch = new Graf(Wierzcholek2[i]->etykieta+" "+Wierzcholek2[i]->ListaEtykiet[j]->etykieta+"*",Wierzcholek2[k]->ListaEtykiet[l]->waga);
          kolejka.push_back(wierzch);
          Wierzcholek2[k]->ListaEtykiet.erase(Wierzcholek2[k]->ListaEtykiet.begin()+l);
          l--;      
        }
       }//for l
     }//for k
    }//for j
  } //for i
}

problem polega na tym, że jak usuwam sobie coś z Wierzcholek2 program usuwa to samo z Wierzcholek.(a ja potrzebuje mieć oryginał nie ruszony)
Ktoś może wie jak zrobić kopie Wierzcholek z ktorej jak coś usunę to orginał zostanie nie naruszony?

0
for(typename vector<Graf*>::iterator i = Wierzcholek.begin();i != Wierzcholek.end(); ++i)
{
	Wierzcholek2.push_back(new Graf(*(*i)));
}


0

Dziękuje bardzo, działa jak należy ;-)

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