STL map iterator->second 无法在.net 上输出
#include <iostream>
#include <map>
using namespace std;
int main()
{
typedef map<int,string> MAP_LIST;
typedef pair<int,string> data;
MAP_LIST list_s;
MAP_LIST::iterator it;
list_s.insert(data(1,"11"));
list_s.insert(data(2,"12"));
list_s.insert(data(3,"13"));
list_s.insert(data(4,"14"));
list_s.insert(data(5,"15"));
list_s.insert(data(6,"16"));
list_s.insert(data(7,"17"));
int nKeyIndex = 2;
it = list_s.find(nKeyIndex);
if (it == list_s.end())
{
cout<<"index didn't find"<<endl;
}
else
{
cout<<"index = "<<(it->first)<<endl;
string a =(it->second);
//cout<<a<<endl;
}
for(it=list_s.begin();it != list_s.end();it++)
{
//cout<<it->first<<":"<<it->second<<endl;
}
list_s.erase(nKeyIndex);
cout<<"update list map"<<endl;
for(it=list_s.begin();it != list_s.end();it++)
{
//cout<<it->first<<":"<<it->second<<endl;
}
system("pause");
return 0;
}
注释掉的部分在.net 2005 .net 2008都编译不过。
但是在linux下面是可以编译通过正常运行的。
想知道.net编译器不支持这种输出吗?
如果map<int,int> 输出就OK STL?MAP?iterator
[解决办法]
你没包含<string>啊大哥
[解决办法]
#include <string>