#include <iostream>
#include <list>
#include <string>
#include <map>
using namespace std;
struct node {
map<string,double> candidates;
double pathCost;
string source;
};
void addNode(list<node*> &nodeKeeper, string source, double pathCost )
{
node* newNode = new node;
newNode->source = source;
newNode->pathCost = pathCost;
nodeKeeper.push_back(newNode);
}
int main()
{
std::list<node*> nodeKeeper;
int sizeOfList = 10;
for( int i =0; i < sizeOfList; i++) {
addNode(nodeKeeper, "test", i);
}
for( int i =0; i < sizeOfList; i++) {
node * temp = nodeKeeper.back();
cout << temp->pathCost << endl;
//free the memory
delete temp;
//get rid of it from the list
nodeKeeper.pop_back();
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bGlzdD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPG1hcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3Qgbm9kZSB7CiAgICBtYXA8c3RyaW5nLGRvdWJsZT4gY2FuZGlkYXRlczsKICAgIGRvdWJsZSBwYXRoQ29zdDsKICAgIHN0cmluZyBzb3VyY2U7Cn07Cgp2b2lkIGFkZE5vZGUobGlzdDxub2RlKj4gJm5vZGVLZWVwZXIsIHN0cmluZyBzb3VyY2UsIGRvdWJsZSBwYXRoQ29zdCApCnsKICAgIG5vZGUqIG5ld05vZGUgPSBuZXcgbm9kZTsKICAgIG5ld05vZGUtPnNvdXJjZSA9IHNvdXJjZTsKICAgIG5ld05vZGUtPnBhdGhDb3N0ID0gcGF0aENvc3Q7CiAgICAKICAgIG5vZGVLZWVwZXIucHVzaF9iYWNrKG5ld05vZGUpOwp9CgppbnQgbWFpbigpCnsKICAgIHN0ZDo6bGlzdDxub2RlKj4gbm9kZUtlZXBlcjsKICAgIAogICAgaW50IHNpemVPZkxpc3QgPSAxMDsKICAgIGZvciggaW50IGkgPTA7IGkgPCBzaXplT2ZMaXN0OyBpKyspIHsKICAgICAgICBhZGROb2RlKG5vZGVLZWVwZXIsICJ0ZXN0IiwgaSk7CiAgICB9CiAgICAKICAgZm9yKCBpbnQgaSA9MDsgaSA8IHNpemVPZkxpc3Q7IGkrKykgewogICAgICAgbm9kZSAqIHRlbXAgPSBub2RlS2VlcGVyLmJhY2soKTsKICAgICAgIAogICAgICAgY291dCA8PCB0ZW1wLT5wYXRoQ29zdCA8PCBlbmRsOwogICAgICAgCiAgICAgICAvL2ZyZWUgdGhlIG1lbW9yeQogICAgICAgZGVsZXRlIHRlbXA7CiAgICAgICAvL2dldCByaWQgb2YgaXQgZnJvbSB0aGUgbGlzdAogICAgICAgbm9kZUtlZXBlci5wb3BfYmFjaygpOwogICAgfQp9