Frage zur adjacent_difference-Umsetzung



  • Folgendes:

    class XDiff : binary_function<Vector3D,Vector3D,double>
    {
    	public:
    		double operator()(const Vector3D& vec1,const Vector3D& vec2)
    		{
    			return vec1.dx - vec2.dx);
    		}
    };
    
    ...
    
    vector<double> diffs(m_fileData.size()); //m_fileData - Typ: vector<Vector3D>
    adjacent_difference(m_fileData.begin(),m_fileData.end(),diffs.begin(),XDiff());
    

    Das bringt mir einen Compile-Fehler: er kann Vector3D nicht in double umwandeln.
    Der Fehler tritt direkt im adjacent_difference auf. Dort wird irgendwie implizit vorausgesetzt, dass In- und Out-Iteratoren auf denselben Tyo zeigen. Ist das denn STL-Konform? Oder ist das ein Fehler im VS?

    Oder habe ich da grade irgendwo nen Denkfehler?

    Edit: Mein Ziel ist es halt die Differenezen der x-Werte zu bekommen, und die will ich direkt als double.

    Der Fehler wird mir bei dieser for-Schleife in <numeric> angezeigt

    _Ty _Val = *_First;
    for (*_Dest = _Val; ++_First != _Last; )
    


  • Und was ist bitte: m_fileData??? Wahrscheinlich kein Container, der nur doubles enthält, oder?


  • Mod

    Du antwortest auf einen Beitrag von 2007!

    Ein Spam-Kommentar hat diesen Beitrag gepushed.


Anmelden zum Antworten