gpt4 book ai didi

c++ - std::sort 和自定义交换函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:54:27 30 4
gpt4 key购买 nike

我目前有一个 pair<double, int> 数组,我使用简单的自定义比较器函数对其进行排序,例如

// compare by first
int sort_index_lcomparator(const pair<double, int>& a, const pair<double, int>& b) {
return a.first < b.first;
}
// then sort simply like
pair<double, int> arr[size];
std::sort(arr, arr + size, sort_index_lcomparator);

我实际上对索引顺序感兴趣,而不是排序的 double 。我的问题是,我想改变这种结构,取而代之的是两个数组的结构,而不是一个结构的数组,即我想优化局部性和自动矢量化,但在这种情况下,我需要一个重载的 swap专门附加到一个类型。我想我需要为 swap 类型重新定义 double 并在此类自定义 swap 中保持两个数组同步。有没有办法在有限的范围内以这种方式“覆盖”swap

最佳答案

我有一个建议给你:使索引数组成为你排序的数组,并将值保留为全局数组。从那时起:基于接受索引的比较器排序,但实际上根据值进行比较。

关于c++ - std::sort 和自定义交换函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12029779/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com