一个关于c++ map 的问题; 希望好心人给我帮助啊,悬赏值不是问题,还可以再加。

2025-01-07 08:24:51
推荐回答(2个)
回答1:

//cities[str]=new list;
你把这一句注释掉,没有创建list,cities[str]是不存在的(即它的值是未知的),而你接下来有调用了cities[str].insert(temp);。
这就相当于:
list * list;// 没有实例化
list->insert(...);// 调用不存在的对象的非静态成员,所以要出错。

另外,析构函数写的不好,程序的设计有问题。

回答2:

map > cities; 存储的是对象
map * > cities;存储的是指针

//cities[str]=new list;
//delete cities[str];
本身就不符合语法的,所以会报错,去掉自然不会报错了