gpt4 book ai didi

c++ - 检查另一个顶点是否具有相同的属性值

转载 作者:行者123 更新时间:2023-11-28 03:41:15 24 4
gpt4 key购买 nike

我有一个用 Boost 的图形库制作的图形。它基于邻接表结构。我有以下简单的顶点定义。

struct Vertex
{
string unique_id_name;
};

我希望能够测试具有给定 unique_id_name 的顶点是否存在。你怎么能这样做?

最佳答案

您可以使用 std::find_if() - 例如,假设您正在寻找 vertex_im_looking_for

如果您使用的是 C++11,则可以将 lambda 插入 std::find_if() - 如果不是,则可以插入标准仿函数(谓词)。

typename boost::graph_traits<Graph>::vertex_iterator vi, vi_end;
tie(vi, vi_end) = vertices(my_graph);

bool found = std::find_if(
vi, vi_end,
[&](const Vertex& vertex){
return vertex.unique_id_name==vertex_im_looking_for.unique_id_name;
}
)!=vi_end;

std::find_if() 返回一个迭代器,因此您可以与 vi_end 进行比较,看看是否找到了您要查找的内容。如果它等于 vi_end,则没有找到您的顶点。

关于c++ - 检查另一个顶点是否具有相同的属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9169999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com