64,282
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include<string.h>
#include<string>
#include<stdio.h>
#include<stdlib.h>
#include<map>
#include <tr1/unordered_map>
using namespace std;
int main()
{
tr1::unordered_map<string,string> test_map;
test_map["a"] = "1234\n5678\n4321\n8765";
test_map["b"] = "1233\n5677\n4322\n8766";
for(tr1::unordered_map<string,string>::iterator it = test_map.begin();it!=test_map.end();++it)
{
cout<<"value:"<<it->second<<endl;
string p_val(it->second);
cout<<"add:"<<&p_val<<" add2:"<<&(it->second)<<endl;
char* value = const_cast<char*>(p_val.c_str());
cout<<"char add:"<<&value<<endl;
char* flight=NULL;
char* out_ptr=NULL;
while((flight=strtok_r(value,"\n",&out_ptr)) != NULL)
{
value = NULL;
cout<<"val:"<<flight<<endl;
}
cout<<"after:"<<p_val<<endl;
cout<<"after2:"<<it->second<<endl;
cout<<endl;
}
}
是不是 char* value = const_cast<char*>(p_val.c_str()); 这里有问题