bool pred(int k, int l, int num1, int num2)
{
return (num1 < num2);
}
int main()
{
vector <int> nums;
for (int i=50; i > 0; --i)
{
nums.push_back(i);
}
std::sort (nums.begin(), nums.end(), boost::bind(&pred, 5, 45));
}
我是推廣新手。 我正在學習使用boost :: bind,並且我想對整數向量進行排序,並去除向量中所有大於45且小於5的元素。難度很大。如果有人能幫助我做到這一點會很棒嗎?使用boost進行排序:: bind
我面臨的問題的原因是因爲我試圖擺脫矢量元素,同時遍歷矢量進行排序。我知道如果我先排序然後從中移除元素會容易得多。但我想這樣做。任何幫助表示讚賞。
我認爲你需要有一個佔位符,在您提高: :綁定表達式:boost :: bind(&outOfRange,5,45,_1) – zdan 2009-11-05 01:50:55
是的,我知道,哎呀。我會解決這個問題,實際上也許可以同時簡化一些事情。 – ephemient 2009-11-05 03:12:07
'boost :: lambda'比'boost :: bind'更有用,例如:'std :: erase_if(nums.begin(),nums.end(),_1 < 5 || _1 > 45);'錯誤但是,如果你發現錯誤信息是可怕的東西,但! – bdonlan 2009-11-05 03:36:47