#include <iostream>
#include <map>
#include <list>
#include <string>
#include <vector>
class foo
{
private:
std::map<std::string, std::list<int>> _allObjs;
std::vector<int*> _someObjs;
public:
void addObj(const std::string &name, int obj)
{
_allObjs[name].push_back(obj);
_someObjs.push_back(&_allObjs[name].back());
}
void doStuff()
{
for (auto &obj : _someObjs)
{
std::cout << *obj << std::endl;
}
}
};
int main()
{
foo test;
test.addObj("test1", 5);
test.addObj("test1", 6);
test.addObj("test2", 7);
test.addObj("test2", 8);
test.doStuff();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8bGlzdD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHZlY3Rvcj4KCmNsYXNzIGZvbwogICAgewogICAgICAgIHByaXZhdGU6CiAgICAgICAgICAgIHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBzdGQ6Omxpc3Q8aW50Pj4gX2FsbE9ianM7CiAgICAgICAgICAgIHN0ZDo6dmVjdG9yPGludCo+IF9zb21lT2JqczsKCiAgICAgICAgIHB1YmxpYzoKICAgICAgICAgICAgdm9pZCBhZGRPYmooY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUsIGludCBvYmopCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgX2FsbE9ianNbbmFtZV0ucHVzaF9iYWNrKG9iaik7CiAgICAgICAgICAgICAgICAgICAgX3NvbWVPYmpzLnB1c2hfYmFjaygmX2FsbE9ianNbbmFtZV0uYmFjaygpKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZvaWQgZG9TdHVmZigpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgZm9yIChhdXRvICZvYmogOiBfc29tZU9ianMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y291dCA8PCAqb2JqIDw8IHN0ZDo6ZW5kbDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgIH07CgppbnQgbWFpbigpCiAgICB7CiAgICAgICAgZm9vIHRlc3Q7CiAgICAgICAgdGVzdC5hZGRPYmooInRlc3QxIiwgNSk7CiAgICAgICAgdGVzdC5hZGRPYmooInRlc3QxIiwgNik7CgogICAgICAgIHRlc3QuYWRkT2JqKCJ0ZXN0MiIsIDcpOwogICAgICAgIHRlc3QuYWRkT2JqKCJ0ZXN0MiIsIDgpOwoKICAgICAgICB0ZXN0LmRvU3R1ZmYoKTsKICAgIH0=