Skip to content

VecDelete

VecDelete

Description

Delete item at given index

Success

return

Failure

Does not return

Usage example (Cross-references)

Usage examples (Cross-references)
                if (VecLen(vec) > 0 && *offset + 4 <= size) {
                    size_t index = extract_u32(data, offset, size) % VecLen(vec);
                    VecDelete(vec, index);
                    // char_ptr_deinit is called automatically by the vector
                }
                if (VecLen(vec) > 0 && *offset + 4 <= size) {
                    size_t index = extract_u32(data, offset, size) % VecLen(vec);
                    VecDelete(vec, index);
                    // StrDeinit is called automatically by the vector
                }
                uint16_t idx = extract_u16(data, offset, size);
                if (idx < VecLen(vec)) {
                    VecDelete(vec, idx);
                }
                break;
    // Test VecDelete function
    bool test_vec_delete(void) {
        WriteFmtLn("Testing VecDelete");
    
        // Create a vector of integers
    
        // Delete element at index 2 (value 30)
        VecDelete(&vec, 2);
    
        // Check new length
    
        // Delete element at index 0 (value 10)
        VecDelete(&vec, 0);
    
        // Check new length
        // Test L-value delete operation
        int index_to_delete = 2; // Delete 30
        VecDelete(&vec, index_to_delete);
    
        // Check vector after L-value deletion
    
        // Test R-value delete operation
        VecDelete(&vec, 2); // Delete 30
    
        // Check vector after deletion
    
        // Test VecDelete (regular delete)
        VecDelete(&vec, 2); // Delete 30
    
        // Check vector length after deletion
    
        // Use regular VecDelete with the L-value index
        VecDelete(&vec, index_to_delete);
    
        // Check vector length after deletion
    /// FAILURE : Does not return
    ///
    #define StrDelete(str, idx) VecDelete((str), (idx))
    
    ///
Last updated on