0

我有一个具有这种结构的节点列表:

private:
    char namefield[30];
    char tam[3];
    char type[1];
};

我想使用算法类中的 find 函数查找和元素,但我想使用项目的 namefield 属性来完成,该find函数有一个要查找的项目作为参数,但问题是我想发送节点而不是节点本身..

4

1 回答 1

0

您可以使用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你的结构的容器在哪里

于 2013-03-07T10:57:01.837 回答