#include <iostream>
#include <algorithm>
using namespace std;
struct Vector {
float x, y, z;
};
struct Particle {
int ID;
Vector position { 0.0f, 0.0f, 0.0f };
Vector velocity { 0.0f, 0.0f, 0.0f };
Vector acceleration { 0.0f, 0.0f, 0.0f};
Vector color { 1.0f, 0.0f, 0.0f }; // RED
};
int main() {
const int MaxParticles = 5;
Particle particles[MaxParticles] = {{0},{3},{2},{4},{5}};
// find particle
int findid = 3;
for(size_t i=0;i< MaxParticles;++i)
{
if (particles[i].ID == findid)
{
std::cout << "found partcile with id " << findid << " at index " << i << std::endl;
break;
}
}
auto iter = std::find_if(particles,particles+MaxParticles, [&](const Particle& p){
if (p.ID == findid)
return true;
return false;
});
std::cout << "Found particle " << iter->ID << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFZlY3RvciB7IAoJZmxvYXQgeCwgeSwgejsKfTsKCnN0cnVjdCBQYXJ0aWNsZSB7CglpbnQgSUQ7CglWZWN0b3IgcG9zaXRpb24gICAgIHsgMC4wZiwgMC4wZiwgMC4wZiB9OwoJVmVjdG9yIHZlbG9jaXR5ICAgICB7IDAuMGYsIDAuMGYsIDAuMGYgfTsKCVZlY3RvciBhY2NlbGVyYXRpb24geyAwLjBmLCAwLjBmLCAwLjBmfTsKCVZlY3RvciBjb2xvciAgICAgICAgeyAxLjBmLCAwLjBmLCAwLjBmIH07IC8vIFJFRAp9OwoKCgoKaW50IG1haW4oKSB7Cgljb25zdCBpbnQgTWF4UGFydGljbGVzID0gNTsKCVBhcnRpY2xlIHBhcnRpY2xlc1tNYXhQYXJ0aWNsZXNdID0ge3swfSx7M30sezJ9LHs0fSx7NX19OwoJCgkvLyBmaW5kIHBhcnRpY2xlCglpbnQgZmluZGlkID0gMzsKCWZvcihzaXplX3QgaT0wO2k8IE1heFBhcnRpY2xlczsrK2kpCgl7CgkJaWYgKHBhcnRpY2xlc1tpXS5JRCA9PSBmaW5kaWQpCgkJewoJCQlzdGQ6OmNvdXQgPDwgImZvdW5kIHBhcnRjaWxlIHdpdGggaWQgIiA8PCBmaW5kaWQgPDwgICIgYXQgaW5kZXggIiA8PCBpIDw8IHN0ZDo6ZW5kbDsKCQkJYnJlYWs7CgkJfQoJfQoJCglhdXRvIGl0ZXIgPSBzdGQ6OmZpbmRfaWYocGFydGljbGVzLHBhcnRpY2xlcytNYXhQYXJ0aWNsZXMsIFsmXShjb25zdCBQYXJ0aWNsZSYgcCl7CgkJaWYgKHAuSUQgPT0gZmluZGlkKQoJCQlyZXR1cm4gdHJ1ZTsKCQlyZXR1cm4gZmFsc2U7Cgl9KTsKCQoJc3RkOjpjb3V0IDw8ICJGb3VuZCBwYXJ0aWNsZSAiIDw8IGl0ZXItPklEIDw8IHN0ZDo6ZW5kbDsKCQoJcmV0dXJuIDA7Cn0=