2 github 37225928 github_37225928 于 2017.01.01 19:08 提问

sort vectors in map的问题

定义了一个queries类
title是里面的一个map

 std::map<std::string, std::vector<std::string>> title;

我想对title里每一个vector排序
然后用了下面的方法可是不行

 for (auto v : queries.title) {
        sort(v.second.begin(), v.second.end());
    }

但是下面这个才可以 为什么啊

  for (auto v : queries.title) {
        sort(queries.title[v.first].begin(),queries.title[v.first].end());
    }

3个回答

bojie5744
bojie5744   Rxr 2017.01.01 22:41
已采纳

for (auto v : queries.title) {
sort(v.second.begin(), v.second.end());
}
深拷贝

devmiao
devmiao   Ds   Rxr 2017.01.02 21:54
oyljerry
oyljerry   Ds   Rxr 2017.01.01 19:19

因为for loop中,你的v是只读方式遍历的,所以sort不能排序修改。而第二个是访问通过query来获取vector后再排序。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!