std::list 使用:结构体指针的list定义、排序和查找
//1 结构体定义
struct RC_Node
{
CHAR cNode[16];
UINTPnt *pnt;
RC_Node *pnodeFather;
// 问题1 :结构体的初始化一直报错:error C2059 C2334[/color]
//RC_Node
//{
// memset(this, 0, sizeof(RC_Node));
//}
//函数问题2
BOOL comp_equal(const RC_Node *node)
{
return this->cNode == node->cNode;
}
};
// 2 list定义 问题3
list<RC_Node*> listNode = new list<RC_Node*>;
listNode = NULL;
//3list排序定义函数
inline BOOL comp_sort(const RC_Node *node1, const RC_Node *node2)
{
return node1->iF < node2->iF;
}
//4 查找
list<RC_Node*>::iterator it_node;
it_node = find_if(listOpen.begin(), listOpen.end(),pNode->comp_equal());
if (it_node == listOpen.end())
{
return FALSE;//不存在,返回false
}
//5 排序
listNode.sort(comp_sort());
问题1
结构体中定义总是报错//TODO下面注释掉的部分
为什么呢?上面的RC_Node *pnodeFather;有问题?
问题2
std中list可以定义为指针类型的吗?list<RC_Node*> listNode = new list<RC_Node*>;
这种定义的错误是什么?正确的改如何定义呢?
问题3
自定义list查找和排序报错了
参照网上帖子里的写法,可是到我这里有问题,自己不明白