vc環境下 stl map 的編譯錯誤,gcc環境編譯正常,求解。

xingluniori 2009-05-17 12:20:01
string key("key");
unsigned char* p_tmp = new unsigned char[8];
std::map<string, unsigned char*> value1;
value1.insert(pair<string, unsigned char*>(key, p_tmp));

以上代碼在gcc環境下可以正常編譯,在vc環境里卻編譯不過去。請各位大俠幫忙看看問題在哪裡。怎麼樣才是通用的寫法。
...全文
143 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
josephwuxiaameng 2009-05-17
  • 打赏
  • 举报
回复
我试了,没问题啊。
我是在VS2008中,新建了一个空工程,
主代码如下:
// problem.cpp Defines the entry point for the console application.
//

#include "stdafx.h"
#include <string>
#include <map>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
string key("key");
unsigned char* p_tmp = new unsigned char[8];
std::map <string, unsigned char*> value1;
value1.insert(pair <string, unsigned char*>(key, p_tmp));

return 0;
}

「已注销」 2009-05-17
  • 打赏
  • 举报
回复
你的VC版本太低了。
对标准兼容不好。
yuyunliuhen 2009-05-17
  • 打赏
  • 举报
回复
没啥问题吧
fairchild811 2009-05-17
  • 打赏
  • 举报
回复
vc6.0容易出类似的问题
hjjdebug 2009-05-17
  • 打赏
  • 举报
回复
vc6 下是好的! 不会有问题。

#pragma warning(disable:4786)
#include <string>
#include <map>

using namespace std;

int main(int argc, char* argv[])
{
string key("key");
unsigned char* p_tmp = new unsigned char[8];
map <string, unsigned char*> value1;
value1.insert(pair <string, unsigned char*>(key, p_tmp));

return 0;
}

  • 打赏
  • 举报
回复
Vc6编译模板,很容易很郁闷的
xingluniori 2009-05-17
  • 打赏
  • 举报
回复
新建一個空的2008工程就好了。還是用gcc算了。多謝樓上的兄弟啊
kingstarer 2009-05-17
  • 打赏
  • 举报
回复
提示什么
xingluniori 2009-05-17
  • 打赏
  • 举报
回复
我選的VC測試環境也是2008啊。爲什麽編譯出錯啊。是不是有什麽設置沒有設啊。

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧