STL in der Spieleprogrammierung



  • Was hält ihr vom Einsatz der STL in der Spieleprogrammierung. Ich würde das gerne für einen automatischen Renderer verwenden. Also die Objekteverwaltung mit vektor<> realisieren. Ist die STL für so eine Aufgabe geeignet? Was meint ih dazu. cu.



  • die STL ist genau für sowas konzipiert worden. D.h. sie wurde auf geschwindigkeit getrimmt und auf zuverlässigkeit.

    allerdings gibt es in der STL schnellere alternativen als vector,
    wie z.b. valarray, die in Bezug auf numerische Berechnungen ausgelegt wurde - z.b. parallele Vektorberechnungen.



  • Nur nach den Informationen hier kann man es nicht beurteilen, aber grundsätzlich ist die STL sehr gut geeignet.


  • Mod

    stl ist gut wenn man einen allgemein schnellen ansatz haben möchte, aber man sollte nicht glauben dass es immer das optimale ist, es gibt des öfteren simple dinge die man in eine liste oder einen vector einbauen kann (sofern man den source hat) die sehr viel performance bringen. viele leute nutzen die stl stumpf für alles ohne rücksicht ein.

    ein gutes beispiel war glaube ich in der QT lib, in der sie die list für eigene dinge optimierten, die eine normale stl implementierung nicht hat, sowas einfaches wie z.b. beim suchen zuerst das zuletzt gelieferte element zu testen, weil es statistisch gesehen oft passiert (bei denen) dass gerade das gesucht wird.

    spezialisierte sachen sind oft schneller, man muss sich dann aber die arbeit machen sie zu implementieren und zu optimieren und dann muss man einiges an wissen mitbringen um es nicht nur langsammer zu machen.

    rapso->greets();



  • Ist die STL OpenSource oder gibt es was ähliches das OpenSource ist. Nur mal um reinzuschauen.



  • NEUGIERIGER schrieb:

    Ist die STL OpenSource oder gibt es was ähliches das OpenSource ist. Nur mal um reinzuschauen.

    Ja, STL ist OpenSource, aber hast du wirklich Lust so einen Code zu lesen:

    valarray<_Ty> cshift(int _N) const 
            {if (size() == 0) 
                ; 
            else if (_N < 0) 
                {if ((_N += size()) < 0) 
                    _N = size() - (-_N) % size(); } 
            else if (size() <= _N) 
                _N %= size(); 
            _VALOP(_Ty, size(), 
                size() - _I <= _N 
                    ? _Ptr[_I - size() + _N] : _Ptr[_I + _N]); }
    


  • DAs kann nicht dein erst sein 😮 😮



  • rapso schrieb:

    ein gutes beispiel war glaube ich in der QT lib, in der sie die list für eigene dinge optimierten, die eine normale stl implementierung nicht hat, sowas einfaches wie z.b. beim suchen zuerst das zuletzt gelieferte element zu testen, weil es statistisch gesehen oft passiert (bei denen) dass gerade das gesucht wird.

    so ein cache fürs letzte element ist oft klasse und kann natürlich nicht nur um ne liste gebaut werden, sondern auch um jede andere struktur mit find().
    hoffe, die leute haben so nen cache gebaut und erlaubt, daß auch was anderes als ne liste drin ist.


Anmelden zum Antworten