#include <list>
#include <map>
#include <set>
#include <string>
#include <iostream>

int main()
{
    std::list<std::map<std::set<std::string>, int>> l =
    {
      {
        {{"a"}, 0},
        {{"b"}, 1},
        {{"c"}, 2},
      },{
        {{"a", "b"}, 3},
        {{"a", "c"}, 4},
        {{"b", "c"}, 5}
      },{
        {{"a", "b", "c"}, 6},
      }
    };

    for(auto& m : l)
        for(auto& p: m)
            std::cout << p.second << ' ';
    std::cout << '\n';
}
