map成员函数 begin()的用法 ?

xiushu 2007-10-24 07:48:09
为什么使用的时候用begin()取出元素是第二个元素,第一个找不到了?
...全文
131 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
星羽 2007-10-24
  • 打赏
  • 举报
回复
那么怎样才能使他按放入的顺序读取呢?

------

用 vector 或 list
beginnow 2007-10-24
  • 打赏
  • 举报
回复
typedef map<char, int> CMap;
typedef CMap::iterator CMapIter;
typedef CMap::value_type CMapValueType;

CMap loMap;
for(char lszBegin = 'a'; lszBegin <= 'z'; lszBegin ++)
loMap.insert(CMapValueType(lszBegin, (int)lszBegin));

CMapIter lIter = loMap.begin();
for(; lIter != loMap.end(); lIter ++)
cout<<lIter->first<<" "<<lIter->second<<endl;

map 是非线性的,如果想线性访问使用vector
xiushu 2007-10-24
  • 打赏
  • 举报
回复
那么怎样才能使他按放入的顺序读取呢?
星羽 2007-10-24
  • 打赏
  • 举报
回复
map 是自动排序的, 里面的顺序已经不是放入的顺序
飞哥 2007-10-24
  • 打赏
  • 举报
回复
这么取元素有什么意义吗?
通过索引取元素
或者通过值来查找

64,420

社区成员

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

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