比如说,我有一个数组 T*array
和一个谓词 p
,我想把数组拆分成不同的子数组 T**subs
在每个匹配 p
的元素上。
所以像这样:
typedef bool (*P) (T element);
T**subs(T*array,P p){....}
subs()
的代码是什么样子的?
请注意,代码只是伪代码,您可以在示例中使用 array_length
等变量,因为我只是想了解如何实现 subs( )
。
最佳答案
比“代码看起来像什么”更重要的是“您想要/需要使用什么数据结构?”这个问题
例如,如果需要在不改变原始值的情况下更改子数组,则需要将数组元素复制到新数组中。如果不更改子数组的值,则可以只将指针或索引数组返回到原始数组中。或者指针数组是一个列表。
一旦确定了符合您要求的数据结构,就可以开发算法了。但是,如果您的算法被证明是麻烦或缓慢的,您可能需要调整您的数据结构以允许更快的处理。
所以你看,你的问题需要你根据你的要求进行大量的“设计”和决定。
关于c - 在元素上拆分 C 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39930437/