我正在尝试按行对二维数组进行排序vector<vector<int> > a(M,vector<int>(N))
,相对于它的第 n 列,如下所示:
sort(a.begin(),a.end(),
(bind(&vector<int>::operator[],_1,n) >
bind(&vector<int>::operator[],_2,n)));
但是我的编译器告诉我
error: no matching function for call to ‘bind(<unresolved overloaded function type>, const boost::lambda::placeholder1_type&, int)’
error: no matching function for call to ‘bind(<unresolved overloaded function type>, const boost::lambda::placeholder2_type&, int)’
我应该如何解决通话?
PS.:尝试了之前访问 operator[] 的更简单的版本
vector<int> a(10);
(bind(&vector<int>::operator[],_1,_2))(a,2);
这是直接从卡尔森的书中改编的复制粘贴。得到
error: no matching function for call to ‘bind(<unresolved overloaded function type>, const boost::lambda::placeholder1_type&, const boost::lambda::placeholder2_type&)’
也为此...