【发布时间】:2012-08-19 20:35:30
【问题描述】:
我目前有一个 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);
我实际上对索引顺序感兴趣,而不是排序的双精度数。我的问题是我想改变这个结构,取而代之的是两个数组的结构而不是一个结构的数组,即我想优化局部性和自动矢量化,但在这种情况下我需要一个重载的@987654323 @ 它专门附加到一个类型。我想我需要为double 类型重新定义swap 并在这种自定义swap 中保持两个数组同步。有没有办法在有限的范围内以这种方式“覆盖”swap?
【问题讨论】: