[問題] 物件放在vector做sort
我有爬過這篇文章 http://ppt.cc/0BJF
以及這一篇 http://ppt.cc/pWc6
其中我最好奇的是第二篇
他的寫法主要是(我節錄重點):
class Foo
{
private:
int age;
public:
....
int getAge(void) const {return age;}
....
};
bool compareAge(Foo* foo1,Foo* foo2)
{
return foo1->getAge() < foo2->getAge();
}
Foo foo1("A",10);
Foo foo2("B",30);
Foo foo3("C",5);
vector foo_v;
foo_v.insert(foo_v.end(),&foo1);
foo_v.insert(foo_v.end(),&foo2);
foo_v.insert(foo_v.end(),&foo3);
sort(foo_v.begin(),foo_v.end(),compareAge);
當初找到這篇覺得很簡單, 就去試, 可是根本無效~
而且其實他的語法也怪怪的(Vector那邊不是應該寫 vector<Foo> foo_v; )
後來發現
參考第一篇文章 把comp的參數宣告成:
bool compareAge( const Foo& foo1,const Foo& foo2)
但是這麼做,我也只能做到return foo1.age < foo2.age;
當然前提是把age放到public
究竟要如何才能做到 可以呼叫member function "getAge()"來做比較呢!?
第一篇文章講的我也在試...還沒成功~~~QQ
煩請大大解惑~
--
在孤單 疲憊的夜裡 走出門外 看看浩瀚的星空
突然覺得 自己是無比的渺小 那些偏執 計較 是多麼的無聊
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.208.23
→
10/10 16:11, , 1F
10/10 16:11, 1F
→
10/10 16:14, , 2F
10/10 16:14, 2F
→
10/10 16:15, , 3F
10/10 16:15, 3F
→
10/10 16:18, , 4F
10/10 16:18, 4F
→
10/10 16:19, , 5F
10/10 16:19, 5F
→
10/10 17:12, , 6F
10/10 17:12, 6F
→
10/10 17:14, , 7F
10/10 17:14, 7F
→
10/10 17:23, , 8F
10/10 17:23, 8F