gpt4 book ai didi

C++如何检查存储在 vector 中的所有对象的元素是否具有相同的值?

转载 作者:太空宇宙 更新时间:2023-11-04 16:18:26 24 4
gpt4 key购买 nike

例如,我有一个对象 vector ,它们都具有属性 PointX,所以我想检查它们是否都具有相同的 PointX 值,如果有,则应该返回 true 或 false。

所以在一种伪代码中:

IF ( Object[1].getPointX() == Object[2].getPoint(x) == Object[3].getPoint(x) ){
return true;
}

问题是我有超过 55 个对象,因此必须有一种方法来比较它们,而无需单独编写它们。我知道肯定有一个 for 循环,但我仍然不知道。

提前致谢。

编辑:@awesomeyi 你的建议似乎最简单也更能满足我的需求(我并不是说其他​​的不是,但我认为它们对于像我这样的新手来说太复杂了)但它不起作用,即使 Xpoints 完全相同或不同它总是返回 false。这是我所拥有的:

bool allKilled(){ 
auto checkpointx = Invader[0].getIfActive();
for(int i = 0; i < 55; ++i){
if(Invader[i].getIfActive() != checkpointx){
return false;}
}
}

getIfActive() 只返回 true 或 false,如果所有对象的所有 Active(对象的属性)均为 false,我希望此方法返回 true。

最佳答案

像这样:

auto refx = Object[0].getPointX();
bool b = std::all_of(Object.begin(),
Object.end(),
[refx](TheTypeOfTHeElements& e)
{ return e.getPointX() == ref; });

显然,您需要检查 Objects 是否为空。

关于C++如何检查存储在 vector 中的所有对象的元素是否具有相同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19934664/

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