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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
vector,map,set,Sort用法
vector,map,set,Sort用法vector,map,set,Sort用法vector,map,set,Sort用法
c++ map sort by value and sort by key(字典的遍历)
#include #include #include #include #include #include using namespace std; int cmp(const pair &x,const pair &y) {     return x.second > y.second; } void sortMapbyValue(map &t_ma
Vectors.dense()
import org.apache.spark.mllib.linalg.Vectors import org.apache.spark.mllib.stat.Statistics val rdd = sc.makeRDD(Array(Array(1.0,10.1,2.5),Array(2.0,5.2,3.8))) val rdd2 = sc.makeRDD(Array(1.2
Java8 sort map by key or value
1. Sort by Key SortByKeyExample.java package com.mkyong.test; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; public class SortByKeyExample { public static v
JavaScript--map、reduce、filter、sort
map -- JavaScript区分大小写,Map是数据类型,map是定义在数组里面的方法。 map()方法同utterable的forEach()方法一样是高阶函数。map()对其中的每一个元素执行其参数function。 eg: var array1 = [1,2,3]; function pow (x) { return x*x; } array1.map(pow);-->arra
List Map sort 排序
List Map sort 排序
Groovy中Map类型的按值排序
[a:3, b:1, c:4, d:2].sort { a, b -> (int)a.value - (int)b.value}.each { println "${it.key},${it.value}" }  执行结果:b,1d,2a,3c,4
Hive Sort Merge Bucket Map Join
测试:一个4000万和一个5000多万的表Join,关联键数据倾斜,并且笛卡尔积,效果明显。 #建立小表 create table lxw_test1(id int,name string,date_time string) clustered by(id) sorted by(id) into 10 buckets; #建立大表 create table lxw_test2(id
perl中 sort map用法总结
 一) sort函数sort LISTsort BLOCK LISTsort SUBNAME LISTsort的用法有如上3种形式。它对LIST进行排序,并返回排序后的列表。假如忽略了SUBNAME或BLOCK,sort按标准字串比较顺序来进行 (例如ASCII顺序)。如果指定了SUBNAME,它实际上是个子函数的名字,该子函数对比2个列表元素,并返回一个小于,等于,或大于0的整数,这依 赖于
js sort函数遇到的坑
最近做项目用sort()对数组排序,发现排完后的顺序不对,搜了很多帖子,才明白了。var values = [0,1,5,10,15]; values.sort(); alert(values) // [0,1,10,15,5] 显然不是你想要的 为啥5在最后面呢?sort函数在比较时 会调用每个数组项的toString()转型方法,即会将每一项转化为ASCII进行比较。可以使用参数...