我有一个具有这种结构的节点列表:
private:
char namefield[30];
char tam[3];
char type[1];
};
我想使用算法类中的 find 函数查找和元素,但我想使用项目的 namefield 属性来完成,该find
函数有一个要查找的项目作为参数,但问题是我想发送节点而不是节点本身..
您可以使用find_if
功能http://www.cplusplus.com/reference/algorithm/find_if/。你为你的结构定义一个谓词(比较函数),如果两个结构的名称字段都为真,则返回真。或类似的东西
class Cmp : public std::unary_function<mystruct, bool> {
std::string m_str;
public:
Cmp(const std::string &str) : m_str(str) {}
bool operator()(const mystruct &val) const {
return m_str.compare(val.namefield) ==0;
}
};
std::find_if(cont.begin(), cont.end(), Cmp("foo"));
cont
你的结构的容器在哪里