首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

map<key,T>成员函数 begin()的用法 ?解决方法

2012-03-19 
mapkey,T成员函数 begin()的用法 ?为什么使用的时候用begin()取出元素是第二个元素,第一个找不到了?[解

map<key,T>成员函数 begin()的用法 ?
为什么使用的时候用begin()取出元素是第二个元素,第一个找不到了?

[解决办法]
这么取元素有什么意义吗?
通过索引取元素
或者通过值来查找
[解决办法]
map 是自动排序的, 里面的顺序已经不是放入的顺序
[解决办法]
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
[解决办法]
那么怎样才能使他按放入的顺序读取呢?

------

用 vector 或 list

热点排行