c - 在元素上拆分 C 数组

标签 c arrays split predicate

比如说,我有一个数组 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/

相关文章:

c - sigsuspend 等价于 sigprocmask、pause、sigprocmask 的原子系列?

c - 退出 main 时出现段错误

Ruby 创建数组形式的 git 日志?

python - 如何将列表拆分为以分隔符开头的子列表?

R - 将数据框中不同字符串长度的列拆分为仅包含一个字符的多列

c - 在已编译 C 代码的汇编 if 语句中使用 "or"助记符

c - ANTLR4 C 语法不支持 __cdecl?

arrays - 如何在 swift 3 中显示 UITextField 中的数组元素?

c++ - 指向多维数组的指针

c++ - 生成不同于数组的 1000 个元素的新元素