<分区>
我有一些数据如下:
size_t num_elements = //...
some_type_t *data = //...
int *scores = //...
每个元素data[i]
在scores[i]
中都有对应的分数。我想对 data
和 scores
进行排序,使用 scores
数组对数据进行排序。
例如,对于数据:
data = {'d', 'g', 'i', 'a', 'p'}
scores = {3, 5, 1, 2, 4}
排序后的版本是
data = {'i', 'a', 'd', 'p', 'g'}
scores = {1, 2, 3, 4, 5}
有没有办法使用 C++ 标准库做到这一点? 我宁愿不需要包含尚未标准化的 Boost 或库。
我还想避免不必要地复制数据。这包括将其转换为结构数组。