Probleme mit list.insert
- 
					
					
					
					
 Hi! Ich habe 2 Listen und wie die eine komplett an die andere dranhängen: 
 equi ist folgendermaßen definiertlist<Region *> *equi; list<Region *>::iterator it = reg->equi->begin(); 
 int capacity = this->size + reg->size;
 this->equi->insert(this->equi->end(), *(reg->equi)->begin(), *(reg->equi)->end());Erhalte folgende Fehlermeldung: 
 e:\Programme\Microsoft Visual Studio .NET 2003\Vc7\include\list(574) : error C2664: 'void std::list<_Ty>::_Insert(std::list<_Ty>::iterator,const _Ty & )': Konvertierung des Parameters 2 von 'RegionSegmentation::Region' in 'RegionSegmentation::Region *const & ' nicht möglich
 with
 [
 _Ty=RegionSegmentation::Region *
 ]
 Ursache: Konvertierung von 'RegionSegmentation::Region' in 'RegionSegmentation::Region *const ' nicht möglich
 Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden
 e:\Programme\Microsoft Visual Studio .NET 2003\Vc7\include\list(537): Siehe Verweis auf Instanziierung der kompilierten Funktionsvorlage 'void std::list<_Ty>::_Insert<_Iter>(std::list<_Ty>::iterator,_Iter,_Iter,std::forward_iterator_tag)'
 with
 [
 _Ty=RegionSegmentation::Region *,
 _Iter=std::allocator<RegionSegmentation::Region *>::value_type
 ]
 e:\Dokumente und Einstellungen\Jennifer\Eigene Dateien\Visual Studio Projects\backup\2007\vers02_test\test2\test2\Region.cpp(44): Siehe Verweis auf Instanziierung der kompilierten Funktionsvorlage 'void std::list<_Ty>::insert<std::allocator<_Ty>::value_type>(std::list<_Ty>::iterator,_Iter,_Iter)'
 with
 [
 _Ty=RegionSegmentation::Region *,
 _Iter=std::allocator<RegionSegmentation::Region *>::value_type
 ]
 main.cppWie kann ich das Problem beheben? 
 
- 
					
					
					
					
 Anhängen einer Liste an das Ende einer anderen Liste funktioniert wie nachfolgend: #include <list> #include <algorithm> #include <iostream> using namespace std; int main(int argc, char* argv[]) { list<int> a; a.push_back(1); a.push_back(2); a.push_back(3); a.push_back(4); list<int> b; b.push_back(5); b.push_back(6); b.push_back(7); b.push_back(8); copy(b.begin(), b.end(), back_inserter(a)); for (list<int>::iterator it = a.begin(); it != a.end(); ++it) cout << *it << endl; return 0; }
 
- 
					
					
					
					
 Danke für die Antwort, aber so geht es auch nicht. 
 Mit den Standarddatentypen funktionieren die Sachen ja immer, aber mit eigenen Klassen gibt es Probleme. Ziemlich nervig.
 
- 
					
					
					
					
 Wollte nur sagen, dass es jetzt mit beiden Methoden klappt. 
 Hab die kryptische Fehlermeldung, doch noch richtig interpretieren können ;-).