C++

Fermé
caroline - 25 mars 2010 à 03:51
Bonjour tout le monde,
voila j'ai un vecteur de classe et je veux le trier selon un attribut qui est double mais le compilateur me sort un message d'erreurs que je ne comprends pas voila mon code:
struct SortByFacw
{

bool operator ()(const Mav& V1, const Mav & V2)const
{
return V1.Facw > V2.Facw;
}

};


ector <Mav>Vmav;

for (int i = 0; i < Vrp.size(); i++)
{
for (int j = 0; j < Vrp[i].mTour.size() - 1; j++)
{
for (int k = 0; k < Vnc.size(); k++)
{
if (Vrp[i].mLenght - (cost4(Vec[Vrp[i].mTour[j]], Vec[Vrp[i].mTour[j + 1]]) - cost4(Vec[Vrp[i].mTour[j]], Vnc[k]) - cost4(Vnc[k], Vec[Vrp[i].mTour[j + 1]]) - cost2(Vnc[k]) - Ckm * Vnc[k].mTpservice) <= MaxLenght)
{
Mav Object(Vec[Vrp[i].mTour[j]], Vec[Vrp[i].mTour[j + 1]], Vnc[k], Ckm * cost4(Vec[Vrp[i].mTour[j]], Vec[Vrp[i].mTour[j + 1]]) - Ckm * cost4(Vec[Vrp[i].mTour[j]], Vnc[k]) - Ckm * cost4(Vnc[k], Vec[Vrp[i].mTour[j + 1]]) + Vnc[k].mPrix - Ckm * cost2(Vnc[k]) - Ckm * Vnc[k].mTpservice, Vrp[i]);
Vmav.push_back(Object);

}

}
}
}

sort(Vmav.begin(), Vmav.end(), SortByFacw());
je vous demande votre aide si vous pouvez merci
caroline

j'ai ce message d'erreurs :
lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_algo.h:2046: instantiated from '_RandomAccessIterator std::__unguarded_partition(_RandomAccessIterator, _RandomAccessIterator, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Mav*, std::vector<Mav, std::allocator<Mav> > >, _Tp = Mav, _Compare = SortByFacw]'
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_algo.h:2519: instantiated from 'void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Mav*, std::vector<Mav, std::allocator<Mav> > >, _Size = int, _Compare = SortByFacw]'
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_algo.h:2589: instantiated from 'void std::sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Mav*, std::vector<Mav, std::allocator<Mav> > >, _Compare = SortByFacw]'
main.cpp:498: instantiated from here
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_algobase.h:111: error: no match for 'operator=' in '(&__b)->__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator* [with _Iterator = Mav*, _Container = std::vector<Mav, std::allocator<Mav> >]() = __tmp'
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/vector.tcc:238: note: candidates are: Mav& Mav::operator=(Mav&)