我有一个包含这种结构的节点的列表:
private:
char namefield[30];
char tam[3];
char type[1];
};
我想用alghorithm类中的find函数查找和元素,但是我想用项的namefield属性来做,find
函数有一个要查找的项目,但事情就是那个我想发送节点的属性而不是节点本身..
答案 0 :(得分:0)
您可以使用find_if
函数http://www.cplusplus.com/reference/algorithm/find_if/。您为结构定义谓词(比较函数),如果两个结构的名称字段都为true,则返回true。
或类似的东西
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
是结构的容器