Ok, so I'm trying to code a map of lists of pointers to a class (that
contains a struct). Basically, the class holds the struct that I'm
populating, and there can be multiple of these. The declaration looks
like this:
map<int, list<my_class*> > map_test;
Now, how do I go about adding and accessing a new element to any given
list? How would I access the data? I did this with a list of
pointers, but can't figure out how to get the map into the equation.
My 'list' code looked like this:
#include <iostream>
#include <string>
#include <list>
#include <map>
using namespace std;
class ex_class
{
public:
struct
{
int num;
int num2;
} info;
int inc_num () {return ++info.num;}
int dec_num () {return --info.num;}
int add_nums () {return info.num + info.num2;}
void print_vals ()
{
cout << "num: " << info.num << " num2: " << info.num2 << "\n\n";
}
};
int main ()
{
list<ex_class*> class_list, anon_list;
list<ex_class*>::iterator class_it, anon_it;
map<int, list<ex_class*>> map_test;
ex_class classone;
classone.info.num = 40;
classone.info.num2 = 30;
classone.print_vals();
cout << classone.inc_num() << '\n';
cout << classone.inc_num() << '\n';
cout << classone.inc_num() << '\n';
cout << classone.inc_num() << '\n';
cout << classone.inc_num() << '\n';
cout << "Sum: " << classone.add_nums() << "\n\n";
class_list.push_back (&classone);
class_it=class_list.begin();
(*class_it)->info.num = 20;
(*class_it)->print_vals();
anon_list.push_back (new ex_class);
anon_it=anon_list.begin();
(*anon_it)->info.num = 33;
(*anon_it)->info.num2 = 77;
(*anon_it)->print_vals();
return 0;
}
Any help would be great!