| 我想写一个类的成员函数用于做排序,sort函数的第三个参数compare_degree()是一个比较函数,我想把他封装到类成员函数里面,但是程序报错如下: #include <vector>
#include <algorithm>
using namespace std;
struct node
{
	int index;//节点序号
	int degree;//节点度
};
class matrix
{
public:
	matrix();
	~matrix();
	vector<node> sort_degree();
	bool compare_degree(node node_a, node node_b);
private:
	vector<node> nodes;
};
bool compare(node node_a, node node_b);
matrix::matrix()
{
}
matrix::~matrix()
{
}
bool matrix::compare_degree(node node_a, node node_b)
{
	//按照节点度降序排列
	return (node_a.degree > node_b.degree);
}
bool compare(node node_a, node node_b)
{
	//按照节点度降序排列
	return (node_a.degree > node_b.degree);
}
vector<node> matrix::sort_degree()
{
	vector<node> temp_nodes = nodes;
	//根据compare_degree规定的规则对数组内的节点排序
	sort(temp_nodes.begin(), temp_nodes.end(), compare_degree);
	sort(temp_nodes.begin(), temp_nodes.end(), compare);
	return temp_nodes;
}
int main(void)
{
	matrix G;
	vector<node> G_degree_rank;
	G_degree_rank = G.sort_degree();
} | |
| 10分 | using namespace std::placeholders; vector<node> temp_nodes = nodes; //根据compare_degree规定的规则对数组内的节点排序 sort(temp_nodes.begin(), temp_nodes.end(), bind(compare_degree,this,_1,_2)); | 
| 请问这个bind函数是干嘛用的呢?能说一下这样改的理由么 | |
| 10分 | |
| 
 原来如此,谢谢啦 | |
 
                    


