gpt4 book ai didi

在 "packed"数组上运行的 C++

转载 作者:搜寻专家 更新时间:2023-10-31 02:18:20 25 4
gpt4 key购买 nike

假设我有两个,比如float数组ab,一个int键数组k 和我自己的模板mySortByKey 函数,在单个数组上操作,类似

template<class T>
mySortByKey(int *k, T *a)

是否有可能(例如,使用 zip 迭代器和某些类型的元组)启用 mySort 同时在 ab 上运行, 以便它们可以根据键 k?

同时排序

最佳答案

我认为你做不到。但是,您可以通过使用辅助索引数组来完成类似的事情。

int keys[ARRAY_SIZE];
float a[ARRAY_SIZE];
float b[ARRAY_SIZE];

// Fill up the contents of keys, a, and b

// Create an array of indices.
int indices[ARRAY_SIZE];
for ( int i = 0; i < ARRAY_SIZE; ++i )
indices[i] = i;

// Sort the indices using keys.
mySortByKey(keys, indices);

// Now access the arrays a and b indirectly, using the sorted array
// of indices as an intermediate object.
for ( int i = 0; i < ARRAY_SIZE; ++i )
{
float fa = a[indices[i]];
float fb = b[indices[i]];
}

关于在 "packed"数组上运行的 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34643139/

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