linux下到底有哪个IDE支持函数和自定义变量的语法高亮的???
时间:2011-02-28
来源:互联网
网上都说map的erase函数调用后,iterator就失效了。而且win下erase和linux下erase的区别就是win下得有返回值返回下一个位置的iterator,而linux下无返回值而已。
可是我现在在ubuntu下调用map的erase函数后,iterator却没有失效,erase后还可以访问原来指向的数据。但是循环结束后重新遍历时,又都删除掉了。请问这是怎么一回事呀? 我是用g++编译得,谢谢各位解答了。
可是我现在在ubuntu下调用map的erase函数后,iterator却没有失效,erase后还可以访问原来指向的数据。但是循环结束后重新遍历时,又都删除掉了。请问这是怎么一回事呀? 我是用g++编译得,谢谢各位解答了。
代码:
#include <iostream>
#include <map>
#include <iterator>
using namespace std;
int main()
{
map<int, char> testlist;
testlist.insert(make_pair(1, 'a'));
testlist.insert(make_pair(2, 'b'));
testlist.insert(make_pair(3, 'c'));
testlist.insert(make_pair(4, 'd'));
map<int, char>::iterator iter;
for(iter = testlist.begin(); iter != testlist.end(); iter++)
{
cout<<"list:"<<iter->first<<":"<<iter->second<<endl;
testlist.erase(iter);
cout<<"again:"<<iter->first<<":"<<iter->second<<endl;
}
for(iter = testlist.begin(); iter != testlist.end(); iter++)
{
cout<<"list:"<<iter->first<<":"<<iter->second<<endl;
testlist.erase(iter);
cout<<"again:"<<iter->first<<":"<<iter->second<<endl;
}
return 0;
}
#include <map>
#include <iterator>
using namespace std;
int main()
{
map<int, char> testlist;
testlist.insert(make_pair(1, 'a'));
testlist.insert(make_pair(2, 'b'));
testlist.insert(make_pair(3, 'c'));
testlist.insert(make_pair(4, 'd'));
map<int, char>::iterator iter;
for(iter = testlist.begin(); iter != testlist.end(); iter++)
{
cout<<"list:"<<iter->first<<":"<<iter->second<<endl;
testlist.erase(iter);
cout<<"again:"<<iter->first<<":"<<iter->second<<endl;
}
for(iter = testlist.begin(); iter != testlist.end(); iter++)
{
cout<<"list:"<<iter->first<<":"<<iter->second<<endl;
testlist.erase(iter);
cout<<"again:"<<iter->first<<":"<<iter->second<<endl;
}
return 0;
}
作者: starter2011 发布时间: 2011-02-28
网上都说map的erase函数调用后,iterator就失效了。而且win下erase和linux下erase的区别就是win下得有返回值返回下一个位置的iterator,而linux下无返回值而已。
可是我现在在ubuntu下调用map的erase函数后,iterator却没有失效,erase后还可以访问原来指向的数据。但是循环结束后重新遍历时,又都删除掉了。请问这是怎么一回事呀? 我是用g++编译得,谢谢各位解答了。
可是我现在在ubuntu下调用map的erase函数后,iterator却没有失效,erase后还可以访问原来指向的数据。但是循环结束后重新遍历时,又都删除掉了。请问这是怎么一回事呀? 我是用g++编译得,谢谢各位解答了。
代码:
#include <iostream>
#include <map>
#include <iterator>
using namespace std;
int main()
{
map<int, char> testlist;
testlist.insert(make_pair(1, 'a'));
testlist.insert(make_pair(2, 'b'));
testlist.insert(make_pair(3, 'c'));
testlist.insert(make_pair(4, 'd'));
map<int, char>::iterator iter;
for(iter = testlist.begin(); iter != testlist.end(); iter++)
{
cout<<"list:"<<iter->first<<":"<<iter->second<<endl;
testlist.erase(iter);
cout<<"again:"<<iter->first<<":"<<iter->second<<endl;
}
for(iter = testlist.begin(); iter != testlist.end(); iter++)
{
cout<<"list:"<<iter->first<<":"<<iter->second<<endl;
testlist.erase(iter);
cout<<"again:"<<iter->first<<":"<<iter->second<<endl;
}
return 0;
}
#include <map>
#include <iterator>
using namespace std;
int main()
{
map<int, char> testlist;
testlist.insert(make_pair(1, 'a'));
testlist.insert(make_pair(2, 'b'));
testlist.insert(make_pair(3, 'c'));
testlist.insert(make_pair(4, 'd'));
map<int, char>::iterator iter;
for(iter = testlist.begin(); iter != testlist.end(); iter++)
{
cout<<"list:"<<iter->first<<":"<<iter->second<<endl;
testlist.erase(iter);
cout<<"again:"<<iter->first<<":"<<iter->second<<endl;
}
for(iter = testlist.begin(); iter != testlist.end(); iter++)
{
cout<<"list:"<<iter->first<<":"<<iter->second<<endl;
testlist.erase(iter);
cout<<"again:"<<iter->first<<":"<<iter->second<<endl;
}
return 0;
}
作者: starter2011 发布时间: 2011-02-28
网上都说map的erase函数调用后,iterator就失效了。而且win下erase和linux下erase的区别就是win下得有返回值返回下一个位置的iterator,而linux下无返回值而已。
可是我现在在ubuntu下调用map的erase函数后,iterator却没有失效,erase后还可以访问原来指向的数据。但是循环结束后重新遍历时,又都删除掉了。请问这是怎么一回事呀? 我是用g++编译得,谢谢各位解答了。
可是我现在在ubuntu下调用map的erase函数后,iterator却没有失效,erase后还可以访问原来指向的数据。但是循环结束后重新遍历时,又都删除掉了。请问这是怎么一回事呀? 我是用g++编译得,谢谢各位解答了。
代码:
#include <iostream>
#include <map>
#include <iterator>
using namespace std;
int main()
{
map<int, char> testlist;
testlist.insert(make_pair(1, 'a'));
testlist.insert(make_pair(2, 'b'));
testlist.insert(make_pair(3, 'c'));
testlist.insert(make_pair(4, 'd'));
map<int, char>::iterator iter;
for(iter = testlist.begin(); iter != testlist.end(); iter++)
{
cout<<"list:"<<iter->first<<":"<<iter->second<<endl;
testlist.erase(iter);
cout<<"again:"<<iter->first<<":"<<iter->second<<endl;
}
for(iter = testlist.begin(); iter != testlist.end(); iter++)
{
cout<<"list:"<<iter->first<<":"<<iter->second<<endl;
testlist.erase(iter);
cout<<"again:"<<iter->first<<":"<<iter->second<<endl;
}
return 0;
}
#include <map>
#include <iterator>
using namespace std;
int main()
{
map<int, char> testlist;
testlist.insert(make_pair(1, 'a'));
testlist.insert(make_pair(2, 'b'));
testlist.insert(make_pair(3, 'c'));
testlist.insert(make_pair(4, 'd'));
map<int, char>::iterator iter;
for(iter = testlist.begin(); iter != testlist.end(); iter++)
{
cout<<"list:"<<iter->first<<":"<<iter->second<<endl;
testlist.erase(iter);
cout<<"again:"<<iter->first<<":"<<iter->second<<endl;
}
for(iter = testlist.begin(); iter != testlist.end(); iter++)
{
cout<<"list:"<<iter->first<<":"<<iter->second<<endl;
testlist.erase(iter);
cout<<"again:"<<iter->first<<":"<<iter->second<<endl;
}
return 0;
}
作者: starter2011 发布时间: 2011-02-28
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28