SKY外语计算机学习

标题: Map<int,string> 怎么升序排序 [打印本页]

作者: CODE    时间: 2013-6-20 23:15
标题: Map<int,string> 怎么升序排序
本帖最后由 sky_yx 于 2015-12-30 14:16 编辑

如何对 map<int ,string>  进行升序和降序排序,哪位高手帮忙实现一下,多谢!


作者: SKY闫喔喔    时间: 2013-6-21 09:18
本帖最后由 sky_yx 于 2015-12-30 14:16 编辑

坐等高手粗现


作者: 1178800363    时间: 2013-6-21 09:31
本帖最后由 sky_yx 于 2015-12-30 14:16 编辑

map是自动升序排序的。
  1. typedef pair<int,string> PAIR;
  2. ostream& operator<<(ostream& out, const PAIR& p)
  3. {
  4. }
  5. int main()
  6. {
  7. map<int,string> name_score_map;
  8. name_score_map.insert(make_pair(2,"s"));
  9. name_score_map.insert(make_pair(1,"a"));
  10. name_score_map.insert(make_pair(6,"b"));
  11. name_score_map.insert(make_pair(5,"m"));
  12. for(map<int,string>::iterator iter = name_score_map.begin();iter != name_score_map.end();++iter)
  13. {
  14. cout << *iter << endl;
  15. }
  16. return 0;
  17. }
复制代码



作者: 1178800363    时间: 2013-6-21 09:34
本帖最后由 sky_yx 于 2015-12-30 14:16 编辑

map<int,string,greater<int>> name_score_map; 这样就是降序咯


作者: CODE    时间: 2013-6-23 22:27
本帖最后由 sky_yx 于 2015-12-30 14:16 编辑

map <int,string,greater<int>> name_score_map;
为什么这样定义会出错
error C2146: syntax error : missing ',' before identifier 'name_score_map'


作者: 格式化    时间: 2013-6-23 22:33
本帖最后由 sky_yx 于 2015-12-30 14:16 编辑

我去叫高手来!


作者: CODE    时间: 2013-6-24 15:19
本帖最后由 sky_yx 于 2015-12-30 14:16 编辑

好的!谢谢!


作者: CODE    时间: 2013-6-25 12:31
本帖最后由 sky_yx 于 2015-12-30 14:16 编辑

怎么没人关注了啊


作者: CODE    时间: 2013-6-26 12:51
本帖最后由 sky_yx 于 2015-12-30 14:16 编辑

求高手帮忙


作者: CODE    时间: 2013-6-26 14:39
本帖最后由 sky_yx 于 2015-12-30 14:16 编辑

在VS2008下没问题,同样的代码,在VC6下有错误!具体原因,还请高手来解释下吧!


作者: 1178800363    时间: 2013-7-1 10:57
std::map<int,string,std::greater<int> > name_score_map;

注意greater<int>后面的空格和需要包含头文件#include<map>
作者: mxmxlwlw    时间: 2013-8-22 17:17
>>中间有没有放空格?




欢迎光临 SKY外语计算机学习 (http://join.skywj.com/) Powered by Discuz! X2.5