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());
    }

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

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