Bonjour,

J'ai trois vector<double> de taille identique. Je voudrais itérer sur 2 d'entre eux simultanement et placer le résultat de leur soustraction dans le troisième.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
std::vector<double> first(100, 0);
std::vector<double> second(100, 0);
std::vector<double> result(100, 0);
 
//remplissage des valeurs dans first et second
 
std::transform(first.begin(), first.end(), secind.begin(), result.begin(), [](double a, double b) {
        return (a - b);
 });
Eclipse me renvoie les erreurs suivantes

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
trying to instantiate ‘template<class _IIter1, class _IIter2, class _OIter, class _BinaryOperation> _OIter std::transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation)’	
no matching function for call to ‘transform(std::vector<double>::iterator, std::vector<double>::iterator, std::vector<double>::iterator, std::vector<double>::iterator, main()::<lambda(double, double)>)template argument fortemplate<class _IIter1, class _IIter2, class _OIter, class _BinaryOperation> _OIter std::transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation)’ uses local type ‘main()::<lambda(double, double)>'
Any idea?

Merci bien.