VecDelete
Description
Delete the element at idx. Order of trailing elements is preserved.
Parameters
| Name | Direction | Description |
|---|---|---|
v |
in,out | Vector handle. |
idx |
in | Position in [0, length). |
Success
Returns to the caller. The vector length shrinks by one; elements previously at indices > idx have shifted left by one. When copy_deinit is configured it is invoked on the dropped element.
Failure
Function cannot fail. An out-of-range idx is a caller bug and aborts via LOG_FATAL.
Usage example (Cross-references)
Usage examples (Cross-references)
- In
VecCharPtr.c:117:
if (VecLen(vec) > 0 && *offset + 4 <= data_size) {
size_t index = extract_u32(data, offset, data_size) % VecLen(vec);
VecDelete(vec, index);
// char_ptr_deinit is called automatically by the vector
}- In
VecStr.c:139:
if (VecLen(vec) > 0 && *offset + 4 <= data_size) {
size_t index = extract_u32(data, offset, data_size) % VecLen(vec);
VecDelete(vec, index);
// StrDeinit is called automatically by the vector
}- In
VecInt.c:86:
uint16_t idx = extract_u16(data, offset, data_size);
if (idx < VecLen(vec)) {
VecDelete(vec, idx);
}
break;- In
Vec.Remove.c:127:
// Test VecDelete function
bool test_vec_delete(void) {
WriteFmtLn("Testing VecDelete");
// Create a vector of integers
- In
Vec.Remove.c:144:
// Delete element at index 2 (value 30)
VecDelete(&vec, 2);
// Check new length
- In
Vec.Remove.c:156:
// Delete element at index 0 (value 10)
VecDelete(&vec, 0);
// Check new length
- In
Vec.Remove.c:387:
// Test L-value delete operation
int index_to_delete = 2; // Delete 30
VecDelete(&vec, index_to_delete);
// Check vector after L-value deletion
- In
Vec.Remove.c:422:
// 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
- In
Remove.h:68:
/// TAGS: Str, Delete
///
#define StrDelete(str, idx) VecDelete((str), (idx))
///
Last updated on