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个回答

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问