#include <iostream>
#include <vector>
const int LOOKUP = 3;
struct Box {
int use;
int cap;
};
void print_vec(const std::vector<Box>& bx) {
for (const Box &b : bx ) {
std::cout << "Box: " << b.use << "/" << b.cap << std::endl;
};
}
void find_box(std::vector<Box>& bx, Box*& bptr) {
for (Box &b : bx) {
if (b.use == LOOKUP) {
bptr = &b;
return;
}
}
}
int main() {
std::vector<Box> boxes = { {1,1}, {2,2}, {3,3}, {4,4}, {5,5} };
Box* bptr = nullptr;
print_vec(boxes);
find_box(boxes, bptr);
Box& b = *bptr;
std::cout << std::endl;
std::cout << "Found box w size: " << b.use << std::endl;
b.cap = 99;
std::cout << "New capacity: " << b.cap << std::endl << std::endl;
print_vec(boxes);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKY29uc3QgaW50IExPT0tVUCA9IDM7CgpzdHJ1Y3QgQm94IHsKICAgIGludCB1c2U7CiAgICBpbnQgY2FwOwp9OwoKdm9pZCBwcmludF92ZWMoY29uc3Qgc3RkOjp2ZWN0b3I8Qm94PiYgYngpIHsKICAgIGZvciAoY29uc3QgQm94ICZiIDogYnggKSB7IAogICAgICAgIHN0ZDo6Y291dCA8PCAiQm94OiAiIDw8IGIudXNlIDw8ICIvIiA8PCBiLmNhcCA8PCBzdGQ6OmVuZGw7CiAgICB9OyAKfQoKdm9pZCBmaW5kX2JveChzdGQ6OnZlY3RvcjxCb3g+JiBieCwgQm94KiYgYnB0cikgewogICAgZm9yIChCb3ggJmIgOiBieCkgewogICAgICAgIGlmIChiLnVzZSA9PSBMT09LVVApIHsKICAgICAgICAgICAgYnB0ciA9ICZiOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQp9CgppbnQgbWFpbigpIHsKICAgIHN0ZDo6dmVjdG9yPEJveD4gYm94ZXMgPSB7IHsxLDF9LCB7MiwyfSwgezMsM30sIHs0LDR9LCB7NSw1fSB9OwoKICAgIEJveCogYnB0ciA9IG51bGxwdHI7CgogICAgcHJpbnRfdmVjKGJveGVzKTsKCiAgICBmaW5kX2JveChib3hlcywgYnB0cik7CgogICAgQm94JiBiID0gKmJwdHI7CgogICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKICAgIHN0ZDo6Y291dCA8PCAiRm91bmQgYm94IHcgc2l6ZTogIiA8PCBiLnVzZSA8PCBzdGQ6OmVuZGw7CiAgICBiLmNhcCA9IDk5OwogICAgc3RkOjpjb3V0IDw8ICJOZXcgY2FwYWNpdHk6ICIgPDwgYi5jYXAgPDwgc3RkOjplbmRsIDw8IHN0ZDo6ZW5kbDsKCiAgICBwcmludF92ZWMoYm94ZXMpOwp9Cg==