Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Dinamička matrica korišćenje ugrađene klase vector

  • 3 odgovora
  • 3.218 pregleda

Najnovija ↓

Dinamička matrica korišćenje ugrađene klase vector 12.12.2011. u 12:51 · pre 181 mesec #1
Pitanje je sledece: ako definišem matricu na sledeći način:

typedef vector<vector<int> > mat;
mat matrica ( 0, vector<int> ( 0, 0 ) );

postoji li mogućnost upotrebe iteratora ili, kako bih prolazio kroz matricu, moram da koristim dve for petlje. Pri standardnoj notaciji, upotrebom iteratora mogu da pristupim samo prvom nizu, ali ne i sledecim
Re: Dinamička matrica korišćenje ugrađene klase vector 12.12.2011. u 13:15 · pre 181 mesec #2
std::vector ima svoj standardni iterator. Pošto imaš dva vektora onda imaš i dva tipa iteratora, i moraš da koristiš dvostruku petlju. Ne postoji ugrađeni iterator specijalno za vector<vector<>> koji bi prolazio kroz sve elemente svih unutrašnjih vektora. Ako želiš takav specijalni iterator onda moraš sam da ga napraviš.
Re: Dinamička matrica korišćenje ugrađene klase vector 12.12.2011. u 13:45 · pre 181 mesec #3
Citat:
Mihajlo Cvetanović: std::vector ima svoj standardni iterator. Pošto imaš dva vektora onda imaš i dva tipa iteratora, i moraš da koristiš dvostruku petlju. Ne postoji ugrađeni iterator specijalno za vector<vector<>> koji bi prolazio kroz sve elemente svih unutrašnjih vektora. Ako želiš takav specijalni iterator onda moraš sam da ga napraviš.


Upravo to me i zanima. Ne mogu nigde da nadjem kako da to napisem

Jedan iteratora sam definisao kao:
vector <vector<int>>::iterator iter = matrica.begin();

to je, kako bih rekao, iterator za jednu dimenziju, kako da napisem iterator za drugu???


PS. hvala na brzom odgovoru!
Re: Dinamička matrica korišćenje ugrađene klase vector 12.12.2011. u 14:32 · pre 181 mesec #4
Ovo je nadam se odgovor:

Code:
for (vector<vector<int> >::iterator it1 = matrica.begin(); it1 != matrica.end(); it1++)
{
  for (vector<int>::iterator it2 = (*it1).begin(); it2 != (*it1).end(); it2++)
  {
    // koristi se *it2 kao element matrice tipa int. Može da se i čita i piše
  }
}

Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme