Check if a value exists in an array in Cython
I want to know how to check if a value or a object exists in an array, like in python:
a = [1,2,3,4,5]
b = 4
if b in a:
print("True!")
else:
print("False")
I want to know if something similar already exists in cython. I have a struct object array of pointers; I want to know if the object exists in this array.
Like
cdef Node *array
array = <Node *>malloc( 5 * cython.sizeof(Node))
for i in range(5):
array[i].index = i
cdef Node test = array[3]
if test in array:
print("True!")
cdef struct Node:
int index
The code above is not correct, but it illustrates what I mean.
Solution 1:
You pretty much have to iterate through the array and check each element.
#include <stdbool.h>
bool isvalueinarray(int val, int *arr, int size){
int i;
for (i=0; i < size; i++) {
if (arr[i] == val)
return true;
}
return false;
}