gpt4 book ai didi

c++ - 如何在 vector 中找到某些东西

转载 作者:行者123 更新时间:2023-11-30 00:57:25 26 4
gpt4 key购买 nike

我有一个指向带有建筑物的 Vector 的指针。

vector<building> * building1;
building1 = gamer.getBuilding(); ( building1 is a pointer to vector with all buildings that gamer has on that moment. )

现在我想检查在那个 vector 中是否存在一个名为 example house 的建筑物..

我以为我可以做类似的事情

vector<building>::iterator it;

it = find((*building1).begin(), (*building1).end(),buildings::house);

其中 buildings 是一个枚举。

但这行不通。

有人可以帮助我吗?

亲切的问候,

最佳答案

答案取决于 building 的定义,您没有显示。但一般来说,当您不想按值查找而是按谓词查找时,您会使用 find_if:

struct building_of_type
{
public:
explicit building_of_type( buildings type ) : _type( type ){}

bool operator ()( building const& b ) const { return is b of type _type?; }
private:
buildings const _type;
};

std::find_if(
building1->begin(), building1->end()
, building_of_type( buildings::house )
);

或者对于更简单的情况:

bool is_building_a_house( building const& b ){ return is b of type house?; }

std::find_if(
building1->begin(), building1->end()
, is_building_a_house
);

关于c++ - 如何在 vector 中找到某些东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8187100/

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