1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
#include <map>
#include <set>
#include <list>
#include <string>
#include <cassert>
int main()
{
std::list<std::map<std::set<std::string>, int>> l1 =
{
{
{{"a"}, 0},
{{"b"}, 1},
{{"c"}, 2},
},{
{{"a", "b"}, 3},
{{"a", "c"}, 4},
{{"b", "c"}, 5}
},{
{{"a", "b", "c"}, 6},
}
};
typedef std::set<std::string> MySet;
typedef std::map<MySet, int> MyMap;
typedef std::list<MyMap> MyList;
MySet s; s.insert("a");
MyMap m; m[s] = 0;
s.clear(); s.insert("b"); m[s] = 1;
s.clear(); s.insert("c"); m[s] = 2;
MyList l2; l2.push_back(m);
s.clear(); s.insert("a"); s.insert("b");
m.clear(); m[s] = 3;
s.clear(); s.insert("a"); s.insert("c"); m[s] = 4;
s.clear(); s.insert("b"); s.insert("c"); m[s] = 5;
l2.push_back(m);
s.clear(); s.insert("a"); s.insert("b"); s.insert("c");
m.clear(); m[s] = 6;
l2.push_back(m);
assert(l1 == l2);
}
|