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后再排序。