C++ 下面的C+有什么问题+;代码(关于共享ptr)

C++ 下面的C+有什么问题+;代码(关于共享ptr),c++,C++,我正试图跟上使用shared_ptr的速度,但我似乎不明白为什么下面的代码无法编译 在头文件中,私有成员声明: std::map<std::string, str::tr1::shared_ptr< std::vector<int> > > *_myMap; std::map>*\u myMap; 在构造函数中,尝试实例化上述对象: _myMap = new map<string, std::tr1::shared_ptr< vector<

我正试图跟上使用shared_ptr的速度,但我似乎不明白为什么下面的代码无法编译

在头文件中,私有成员声明:

std::map<std::string, str::tr1::shared_ptr< std::vector<int> > > *_myMap;
std::map>*\u myMap;
在构造函数中,尝试实例化上述对象:

_myMap = new map<string, std::tr1::shared_ptr< vector<int> > >();
\u myMap=newmap>();
错误消息:

Test.cpp:14:68: error: cannot convert ‘std::map<std::basic_string<char>, std::tr1::shared_ptr<std::vector<int> > >*’ to ‘std::map<std::basic_string<char>, std::vector<int> >*’ in assignment
Test.cpp:14:68:错误:无法将分配中的“std::map*”转换为“std::map*”
我想一步一步地转换我的指针,但我似乎不明白为什么上面会出现错误。有人能提供建议吗?谢谢

编辑:


我找到了原因。我打开了两个vim实例,其中一个正在写入临时交换文件,而在编译时并没有实际查看更改。谢谢大家的支持。

你确定这是当前的定义吗?错误表示您的地图在标题中声明为

std::map<std::string, std::vector<int> >*
std::map*

您不能一字不差地发布代码

您的标题必须是
std::map*\u myMap


你确定你的建筑是正确的吗?尝试新版本。

我必须做些什么才能使代码看起来正式?发布一个完整的文件来演示问题(将标题副本粘贴到源文件中,并删除演示问题不需要的所有内容)。在我看来,错误消息好像您没有使用您所说的声明类型声明
\u myMap
,因此这是我个人从您发布的内容中所能得到的。如果这确实是问题所在,那么一个
typedef
将有助于避免此类错误。为什么要这么做,然后在最后一步,有一个指向地图结构的原始指针呢?:/它应该是一个值,或者也应该在智能指针中。@GMan:让我们先得到一个
shared\u ptr
工作;-)@史蒂夫:看起来他根本不应该动态分配向量。谢谢你的评论。我发布的原始代码是标题中代码的直接复制粘贴。我试着让清洁->制造,但仍然是same@dustin:这是不可能的。这正是我感到困惑的原因,因为在标题中声明了相同的内容。很奇怪。。。