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

标签 c++ vector

例如,我有一个对象 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/

相关文章:

c++ - 使用 C# 或 C++ 程序在 Windows 中挂载隐藏分区

C++ 类常量值成员 -- 样式

c++ - 跨平台 C++ 工具链

c++ - PyQt4 创建不可调整大小的窗口

c++ - 从 .txt 文件中获取数字并将它们放入 C++ 中的 vector 中

c++ - asio::buffer 类型用于发送 std::vector 和 std::string

c++ - 显示带有来自资源的 PNG 图标的 Win32 弹出菜单

java - 3d vector 的全局角度

c++ - 一行中的两个for循环c++

performance - 为什么我的 Matlab for 循环代码比我的矢量化版本更快