map of vectors in STL?
c++, stl
Solution
The first data structure will work. You might want to `typedef` some of the code to make future work easier:
typedef std::vector<MyClass> MyClassSet;
typedef std::map<int, MyClassSet> MyClassSetMap;
MyClassSetMap map;
map.insert(MyClassSetMap::value_type(10, MyClassSet()));
or (thanks quamrana):
map[10] = MyClassSet();
Problem
I want to have a map of vectors, (but I don't want to use pointer for the internal vector), is it possible? ``` // define my map of vector map<int, vector<MyClass> > map; // insert an empty vector for key 10. # Compile Error map.insert(pair<int, vector<MyClass> >(10, vector<MyClass>)); ``` I know that if I have used pointer for vector, as follows, it would be fine, but I wonder if I can avoid using pointer and use the above data structure (I don't want to manually delete) ``` // define my map of vector map<int, vector<MyClass>* > map; // insert an empty vector for key 10. map.insert(pair<int, vector<MyClass>* >(10, new vector<MyClass>)); ```