在C中创建唯一值列表的理想方法是什么?

j r*_*riv 2 c

说我们有

typedef struct {
  int value1;
  int value2;
} values_t;
Run Code Online (Sandbox Code Playgroud)

values_t* values;
Run Code Online (Sandbox Code Playgroud)

填充了值[i] .value1values [i] .value2对,它们可能是唯一的,也可能不是唯一的.

我们想填补

values_t* values_unique;
Run Code Online (Sandbox Code Playgroud)

只有中的唯一对,按照它们首次出现在中的顺序.

在C中执行此操作的理想方法是什么?

编辑:假设他们是正确的malloced指针; 上面只是伪代码.

Jon*_*ler 6

你可能使用值的散列,保持哈希和相应值的列表,只添加一对新的values_unique数组(这个问题本来不声明为一个数组),如果它不是通过哈希发现.如果列表很大,则从散列加速而不是按顺序搜索整个列表的速度非常快.