[C++ STL] list met vectoren

Pagina: 1
Acties:

  • Wezzie
  • Registratie: Maart 2001
  • Laatst online: 21-08 07:00
Ik wil een 2-3 boom implementeren met behulp van STL
Nu had ik in gedachten om ongeveer het volgende te doen

list<vector<int>> MyTree

Dus een lijst met vectoren waarin de vectoren de nodes zijn voor de 2-3 boom. Is het uberhaupt wel mogelijk om list te maken met vectoren er in? Ik krijg er namelijk 200.000 foutmeldingen op.

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 03-09 23:48
Probeer een spatie tussen > en > anders ziet de compiler het als de >> operator.
dus:
list<vector<int> > MyTree

  • Wezzie
  • Registratie: Maart 2001
  • Laatst online: 21-08 07:00
Maar het is wel mogelijk?
Ik weet namelijk wel dat stacks en queus adapter classen zijn en dat wel kunnen maar listen weet ik het niet. al kan er wel een string in.

  • roelio
  • Registratie: Februari 2001
  • Niet online

roelio

fruitig, en fris.

inderdaad, dat moet zo lukken (met die extra spatie(s))

AMD Phenom II X4 // 8 GB DDR2 // SAMSUNG 830 SSD // 840 EVO SSD // Daar is Sinterklaas alweer!!


  • Wezzie
  • Registratie: Maart 2001
  • Laatst online: 21-08 07:00
Ja het kan zie ik net. |:(

Nu nog "even" :( de boom op een rijtje zetten en deze jongen is weer vrolijk. :)

  • Wezzie
  • Registratie: Maart 2001
  • Laatst online: 21-08 07:00
nog even 1 vraag.
Is het bijvoorbeeld mogelijk om aan die vector nog eens aan te geven dat je 3 elementen in deze vector wilt hebben die geinitaleerd worden op 0

Normaal zeg je:
vector<int> soepstengel(3,0)

Maar nu zou het moeten zijn:
list<vector<int> soepstengel (3,0)>

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 03-09 23:48
for_each element in list {
element = new vector (3,0);
}

Hoe dat for_each precies gaat weet ik niet.

Verwijderd

Op donderdag 14 maart 2002 20:34 schreef Wezzie het volgende:
nog even 1 vraag.
Is het bijvoorbeeld mogelijk om aan die vector nog eens aan te geven dat je 3 elementen in deze vector wilt hebben die geinitaleerd worden op 0

Normaal zeg je:
vector<int> soepstengel(3,0)

Maar nu zou het moeten zijn:
list<vector<int> soepstengel (3,0)>
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <vector>
#include <list>
#include <ostream>

using namespace std;

list< vector<int> > boom (2, vector<int>(3, 0));

int main ()
{
    for (list< vector<int> >::const_iterator i = boom.begin(); i != boom.end(); ++i)
    {
        for (vector<int>::const_iterator j = i->begin(); j != i->end(); ++j)
        {
            cout << *j << " ";
        }
        
        cout << endl;
    }
}

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 11-09 18:38
Op donderdag 14 maart 2002 20:34 schreef Wezzie het volgende:
nog even 1 vraag.
Is het bijvoorbeeld mogelijk om aan die vector nog eens aan te geven dat je 3 elementen in deze vector wilt hebben die geinitaleerd worden op 0

Normaal zeg je:
vector<int> soepstengel(3,0)

Maar nu zou het moeten zijn:
list<vector<int> soepstengel (3,0)>
Nee - "die vector" is onduidelijk. De default list ctor maakt een lege list, zonder vectoren. Wat je wel kunt doen is de list ctor gebruiken die ook N list elementen aanmaakt, en die als tweede parameter vector<int>(3,0) meegeven. Dan heb je dus N vectoren die elk 3 nullen bevatten.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein

Pagina: 1