Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check if a value exists in an array in Cython

Tags:

arrays

c

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.

like image 524
Jean-Francois Gallant Avatar asked Feb 26 '13 16:02

Jean-Francois Gallant


1 Answers

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;
}
like image 119
luser droog Avatar answered Nov 18 '22 14:11

luser droog