Skip to content

VecRemove

VecRemove

Description

Remove item from vector at given index and store in given pointer. Order of elements is guaranteed to be preserved.

Parameters

Name Direction Description
v in,out Vector to remove item from.
ptr out Where removed item will be stored. If not provided then it’s equivalent to deleting the item at specified index.
idx in Index in vector to remove item from.

Success

return

Failure

Does not return

Usage example (Cross-references)

Usage examples (Cross-references)
                    size_t index = extract_u32(data, offset, size) % VecLen(vec);
                    char  *str;
                    VecRemove(vec, &str, index);
                    // char_ptr_deinit is called automatically by the vector
                }
                    size_t index = extract_u32(data, offset, size) % VecLen(vec);
                    Str    str;
                    VecRemove(vec, &str, index);
                    // StrDeinit is called automatically by the vector
                }
                if (idx < VecLen(vec)) {
                    i32 removed;
                    VecRemove(vec, &removed, idx);
                }
                break;
    /// FAILURE : Does not return
    ///
    #define VecPopBack(v, ptr) VecRemove((v), (ptr), (v)->length - 1)
    
    ///
    ///              to deleting item from last position.
    ///
    #define VecPopFront(v, ptr) VecRemove((v), (ptr), 0)
    
    ///
    /// FAILURE : Does not return
    ///
    #define VecDelete(v, idx) VecRemove((v), (VEC_DATATYPE(v) *)NULL, (idx))
    
    ///
    /// FAILURE : Returns NULL otherwise.
    ///
    #define StrRemove(str, chr, idx) VecRemove((str), (chr), (idx))
    
    ///
Last updated on