【发布时间】:2012-08-14 14:02:57
【问题描述】:
我尝试在课堂上使用 std::map 作为属性。我使用 Visual Studio 2012,我的课是这样的:
public ref class MyClass
{
std::map<std::wstring,MyType> * mpMyMap;
MyClass()
{
mpMyMap = new std::map<std::wstring,MyType>();
}
~MyClass()
{
delete mpMyMap;
}
Get(std::wstring name)
{
return mpMyMap[name];
}
}
返回时 mpMyMap[name];我得到错误,这种类型没有 operator[]。我该怎么办?
【问题讨论】:
-
为什么
mpMyMap是一个指针?您是否需要它作为指针(您可能不需要)。如果你确实需要它是一个指针,你应该使用一个智能指针类型来包装它(比如std::unique_ptr,或者boost::scoped_ptr)。 -
为什么在 C++/CLI 中使用 std::map?为什么不 System::Collections::Generic::Dictionary?