You are not logged in.

  • Login

Dear visitor, welcome to Coder Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Friday, December 8th 2006, 3:14pm

Auf Listen von Listen zugreifen

Guten Tag,

ich moechte eine liste erstellen in der wiederum listen von int stehen.
ich habe auch hier im forum gefunden wie man eine solche liste anlegt, aber leider schienen es alle fur logisch zu halten wie man darauf zugreift.

std::list< std::list <int> > myList;

Was ich bisher weiss beschraenkt sich auf listen von int und mit denen komme ich gut klar.

Wie kann ich also eine liste in der liste der listen anlegenen (es ist genauso gemeint auch wenn es komisch klingt javascript:emoticon) und neue elemente in der liste der int anlegen und auslesen ?
Und wie sortiere ich die listen von int ( den sort() befehl kenne ich ,nur wie muss ich das anwenden wenn die listen wieder in listen stehen ) ?



Es ginge bestimmt auch einfacher, aber ich wollte gern die STL und sort() verwenden.

Vielen Dank

2

Friday, December 8th 2006, 4:28pm

C Quellcode

1
2
3
4
5
std::list< std::list<int> >::iterator IT1;
std::list<int>::iterator IT2;
 
IT1 = myList.begin();
IT2 = IT1->begin();


Dann kannst du ganz "normal" mit Iteratoren arbeiten

3

Sunday, December 10th 2006, 12:12pm

Listen in Listen erstellen, Listen von Listen, list<list&

Guten Tag,

für die Hilfe wollte ich mich bedanken indem ich mal die Lösung, bei der mir ein Freund geholfen hat, online stelle, der Tipp oben war zwar hilfreich aber ich wußte nicht das man Sachen wie bei *** schreiben kann.

Bin mir nicht sicher ob alle include nötig sind kann es aber im Moment nicht testen.

Also ich hoffe das hilft etwas, da ich es damals nirgends finden konnte.

C Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <list>
#include <iterator>
#include <stdlib.h>
#include <iostream>
#include <cstdlib>
 
list< list<int> > charList;
 
 
for( int i=0; i < 10; i++ ) {
	   charList.push_front( *(new list<int>) );
	   charList.front().push_front(rand());     // ***
	   charList.front().push_front(rand());
	   charList.front().push_front(rand());
	   charList.front().push_front(rand());
	   charList.front().push_front(rand());
	   charList.front().push_front(rand());
   }
 
 
   // Display the list
   list< list<int> >::iterator theOuterIterator;
   int i = 0;
 
for( theOuterIterator = charList.begin(); theOuterIterator != charList.end(); theOuterIterator++ ) 
	{
	theOuterIterator->sort();
	list<int>::iterator theInnerIterator;
	cout << "Liste: " << i << endl;
 
	for( theInnerIterator = theOuterIterator->begin(); 
                theInnerIterator !=   theOuterIterator->end(); theInnerIterator++ ) 
                {
	cout << *theInnerIterator << endl;
	}
	i++;
	}

4

Sunday, December 10th 2006, 2:36pm

Re: Listen in Listen erstellen, Listen von Listen, list<l

Quoted from ""stefan7""

C Quellcode

1
charList.push_front( *(new list<int>) );

Willkommen in der wunderbaren Welt der Memory Leaks :wink: .

Gruß void

5

Thursday, December 14th 2006, 5:17pm

Stimmt, es fehlt das delet, aber war erstmal froh mit den Listen klar zu kommen, wenn ich komplet fertig bin schreib ihr hier das Program nochmal rein.

Falls jemand mag kann er auch gern schreiben wie man die listen wieder loescht, hat bei mir noch nicht geklappt.

genauer gesagt habe ich nicht heraus gefunden ob dann auch die listen innerhalb der liste wieder geloescht sind.

6

Thursday, December 14th 2006, 8:53pm

STL Listen

Hallo,

hier mal ein Beispiel.

Listen anlegen und anschließend die Listen durchlaufen und die Werte
ausgeben.

C Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#pragma warning ( disable : 4786 )
#include <iostream>
#include <list>
 
int main()
{
   std::list< std::list< int > > myIntList;
 
   std::list< int > myFirstList;
 
   myFirstList.push_back( 5 );
   myFirstList.push_back( 6 );
   myFirstList.push_back( 2 );
   myFirstList.push_back( 1 );
 
   myIntList.push_back( myFirstList );
 
   std::list< int > mySecondList;
 
   mySecondList.push_back( 15 );
   mySecondList.push_back( 16 );
   mySecondList.push_back( 12 );
   mySecondList.push_back( 11 );
 
   myIntList.push_back( mySecondList );
 
 
   std::list< std::list< int > >::iterator iter    ( myIntList.begin() );
   std::list< std::list< int > >::iterator iterEnd ( myIntList.end() );
 
   while( iter != iterEnd )
   {
      std::list< int >& firstList = *iter;
 
      std::list< int >::iterator iterList    ( firstList.begin() );
      std::list< int >::iterator iterListEnd ( firstList.end() );
 
      while( iterList != iterListEnd )
      {
         int& iValue = *iterList;
 
         std::cout << "Value: " << iValue << std::endl;
 
         ++iterList;
      }
 
      ++iter;
   }
 
   return 1;
 
}

Similar threads

Social bookmarks