c++ - 在结构的 c++ std vector 中搜索具有匹配字符串的结构

标签 c++ data-structures find vector std

我确信我正在使这比它需要的更难。

我有一个 vector ...

vector<Joints> mJointsVector;

...由以下结构组成:

struct Joints
{
    string name;

    float origUpperLimit;
    float origLowerLimit;   
};

我正在尝试使用“std::find”搜索 mJointsVector 以通过其字符串名称定位单个关节 - 到目前为止运气不佳,但以下示例至少在概念上有所帮助:

Vectors, structs and std::find

谁能进一步指出我正确的方向?

最佳答案

直接的方法:

struct FindByName {
    const std::string name;
    FindByName(const std::string& name) : name(name) {}
    bool operator()(const Joints& j) const { 
        return j.name == name; 
    }
};

std::vector<Joints>::iterator it = std::find_if(m_jointsVector.begin(),
                                                m_jointsVector.end(),
                                                FindByName("foo"));

if(it != m_jointsVector.end()) {
    // ...
}

或者,您可能想查看类似 Boost.Bind 的内容减少代码量。

关于c++ - 在结构的 c++ std vector 中搜索具有匹配字符串的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2025938/

上一篇:C++字符串如何

下一篇:C++ cout打印缓慢

相关文章:

c++ - connect() 函数失败 wsagetlasterror() 10038

algorithm - 使用二叉树对字母排序

c++ - GDCM:我想对图像做一个简单的锐化过滤器,但不知道如何改变像素值

c++ - 在经典 C++ WinAPI (Win32) 应用程序中获取 Windows 10 主题颜色

java - worker 自动分配排队系统

algorithm - 给定一个最佳拟合大小的数组,告诉其他数组可以拟合多少个元素(下面有更多详细信息)

c++ - 仅威胁独特的字符串——什么是更快的 vector<std::string> 或只是 std::string

bash - 捕获输出并计算其行数

c# - 查找通用列表的方法以搜索特定的星期几

c++ - 返回通过引用分配的引用局部变量