我有一个结构定义如下
struct a_t
{
std::string ID;
std::string Description;
};
并且结构a_t
上的向量定义如下:
std::vector<a_t> aList
aList
的内容如下:
ID Description
=================
one_1 Device 1
two_2 Device 2
three_3 Device 3
....
给定字符串one
,我应该搜索aList
以查找该特定元素的描述。在这种情况下,我必须得到Device 1
作为输出。
我应该怎么做呢?
答案 0 :(得分:2)
试试这个:
for(std::vector<a_t>::iterator it = aList.begin(); it != aList.end(); ++it) {
if ((*it).ID.find("one") != std::string::npos) {
std::cout << (*it).Description<< '\n';
}
}
答案 1 :(得分:2)
您可以使用std::find_if
<algorithm>
a_t item;
auto pred = [](const a_t & item) {
int p = -1;
p= item.ID.find("one");
return p >= 0;
};
std::vector<a_t>::iterator pos=std::find_if(std::begin(aList), std::end(aList), pred);
std::cout <<"\nResult:" <<pos->Description;