C ++ - 如何使用new运算符创建多图的新实例?

时间:2014-03-28 22:10:26

标签: c++ multimap

我正在尝试这样的事情 -

//creation of multimap
multimap <int, string> prioritized_list;
//declared pointer for multimap
multimap <int, string>::const_pointer plist_pointer;
//tried to create instance of multimap.
plist_pointer=new prioritized_list;

我必须在函数中创建多个map的新实例,需要多次调用。

我是C ++的新手。如果我在考虑任何错误,请告诉我。

1 个答案:

答案 0 :(得分:3)

您很可能不想使用new。与Java之类的语言不同,在C ++中每个对象创建都需要new关键字 ,与许多其他语言不同,使用new创建的对象不是当您不再需要它们时自动销毁。您必须使用delete手动删除它们。

此外,new不返回新创建的对象本身,而是返回指向它的指针,允许您执行令人讨厌的事情,如存储指针,稍后删除对象,然后意外尝试通过存储的指针访问它,这可能会导致程序崩溃。

所有这些都会产生无穷无尽的问题和错误。特别是如果你是一个新手(或者如果你获得了更多的经验并且思考你最终可以处理复杂性:)。)。

在C ++中,普通对象创建不需要new。它简单得多。您的第一行 已经是对象创建:

multimap <int, string> prioritized_list;

此处无需new