我想nums在不破坏原始顺序的情况下对命名的切片进行排序。所以我inds用来记录索引nums和排序inds:
vector<int> nums = {1,3,2,1,1,1};
vector<int> inds = {0,1,2,3,4,5};
sort(inds.begin(), inds.end(),
[nums](int i, int j) -> bool
{
return nums[i] > nums[j];
});
for(int i : inds) {
cout << i;
}
这inds是120345排序后的。在 Go 中,我测试:
nums := []int{1,3,2,1,1,1}
inds := []int{0,1,2,3,4,5}
sort.Slice(inds, func(i, j int) bool {
return nums[i] > nums[j]
})
fmt.Println(inds)
而 The indsis [1 0 2 3 4 5]after sort,这和C++的结果不一样,和我预想的不一样。为什么 Go 排序inds不好?
波斯汪
相关分类