Mon*_*urd 7 c++ vector std find data-structures
我敢肯定,我正在努力实现这一目标.
我有一个矢量......
vector<Joints> mJointsVector;
Run Code Online (Sandbox Code Playgroud)
...由以下图案构成的结构组成:
struct Joints
{
string name;
float origUpperLimit;
float origLowerLimit;
};
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用"std :: find"搜索mJointsVector以通过其字符串名称找到一个单独的关节 - 到目前为止没有运气,但以下示例帮助,至少在概念上:
任何人都能指出我在正确的方向吗?
Geo*_*che 16
一种直截了当的方法:
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()) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
或者,您可能希望查看类似Boost.Bind的内容以减少代码量.
小智 5
怎么样:
std::string name = "xxx";
std::find_if(mJointsVector.begin(),
mJointsVector.end(),
[&s = name](const Joints& j) -> bool { return s == j.name; });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8221 次 |
| 最近记录: |