> saat ini saya sedang berada dalam lingkungan m$ memakai vis c++ 6.0. > Nah di msdn nya disebutkan bahwa list.sort nya diganti dengan > void sort(greater<T> pr). Kira2 bagaimana ya Mas solusinya?
Ah, Visual C++ :-( Salah satu caranya adalah kembali menggunakan sort() yang biasa, tanpa argument apa-apa, tapi overload saja operator< di kelas CData, kira-kira seperti ini (harus ditambahkan di deklarasi kelasnya): bool operator>(const CData& cd) const { return m_price > cd.m_price; } Ini adalah cara yang "standar". Kalau mau masih memakai "predicate", coba yang ini (enggak janji jalan, soalnya belum dites compile di VC++): template<> struct std::greater<CData> { int mode; greater( int m ) : mode(m) {} bool operator()( const CData& c1, const CData&c2 ) { return c1.m_price>c2.m_price; } }; Terus dipanggilnya: l.sort( greater<CData>(0) ); Kenapa ada mode? Ini supaya satu predicate 'greater' itu bisa digunakan untuk sort berdasarkan key yang berbeda-beda (mungkin price, mungkin vol). Contoh di atas, modenya kita isikan sembarang (=0) karena di implementasi (lihat overload untuk operator() ) variabel mode ini diabaikan sewaktu melakukan perbandingan. Bisa dilihat, kelebihan cara "predicate" ini adalah dimungkinkannya sorting dengan banyak kriteria, tidak hanya satu kriteria seperti cara "standar" sebelumnya. -- http://www.google.com/search?q=ariya+hidayat&btnI -- Berhenti langganan: [EMAIL PROTECTED] Arsip dan info: http://linux.or.id/milis