我正在尝试这样的事情 -
//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 ++的新手。如果我在考虑任何错误,请告诉我。
答案 0 :(得分:3)
您很可能不想使用new
。与Java之类的语言不同,在C ++中每个对象创建都需要new
关键字 ,与许多其他语言不同,使用new
创建的对象不是当您不再需要它们时自动销毁。您必须使用delete
手动删除它们。
此外,new
不返回新创建的对象本身,而是返回指向它的指针,允许您执行令人讨厌的事情,如存储指针,稍后删除对象,然后意外尝试通过存储的指针访问它,这可能会导致程序崩溃。
所有这些都会产生无穷无尽的问题和错误。特别是如果你是一个新手(或者如果你获得了更多的经验并且思考你最终可以处理复杂性:)。)。
在C ++中,普通对象创建不需要new
。它简单得多。您的第一行 已经是对象创建:
multimap <int, string> prioritized_list;
此处无需new
。