gpt4 book ai didi

c++ - STL,减少数组,C++

转载 作者:太空宇宙 更新时间:2023-11-03 10:36:04 24 4
gpt4 key购买 nike

对于硬件分配,我们要编写如下所示的 reduce 例程:

int reduce(long array[], int size) 
//Where array is the array to reduce, and size is the size of the array.

使用 STL。我最初的想法是创建一个集合,将所有项目放入集合中进行比较,但后来我意识到我将创建的集合将永远无法使用,因为该函数返回新集合的大小,而不是集合本身使用。所以我不确定我将如何使用 STL 来减少数组。有什么想法吗?谢谢。

编辑:sorry,reduce只是将数组缩减为无重复的有序数组。

E.g. {4, 4, 2, 1} -> {1, 2, 4}

最佳答案

使用 std::sort 对数组进行排序,然后对其应用 std::unique 以删除重复项。 std::unique 仅适用于排序数组。只是为了简化这里的问题是如何获得 native 数组的 beginend:

long* begin = array;
long* end = array + size;

一旦具备了这两点,您就可以轻松地应用标准算法。此外,如果您需要返回新的大小(数组中使用的元素):

long* end_after_unique = unique(...);
return end_after_unique - array;

关于c++ - STL,减少数组,C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3267152/

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