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
Remove.h:68:
/// TAGS: Str, Delete
///
#define StrDelete(str, idx) VecDelete((str), (idx))
///
- In
VecInt.c:86:
uint16_t idx = extract_u16(data, offset, data_size);
if (idx < VecLen(vec)) {
VecDelete(vec, idx);
}
break;- 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
Complex.c:523:
// Test VecDelete (regular delete)
VecDelete(&vec, 2); // Delete 30
// Check vector length after deletion
- In
Complex.c:587:
// Use regular VecDelete with the L-value index
VecDelete(&vec, index_to_delete);
// Check vector length after deletion
- In
Remove.c:214:
// Test VecDelete function
bool test_vec_delete(void) {
WriteFmtLn("Testing VecDelete");
// Create a vector of integers
- In
Remove.c:231:
// Delete element at index 2 (value 30)
VecDelete(&vec, 2);
// Check new length
- In
Remove.c:243:
// Delete element at index 0 (value 10)
VecDelete(&vec, 0);
// Check new length
- In
Remove.c:474:
// Test L-value delete operation
int index_to_delete = 2; // Delete 30
VecDelete(&vec, index_to_delete);
// Check vector after L-value deletion
- In
Remove.c:509:
// Test R-value delete operation
VecDelete(&vec, 2); // Delete 30
// Check vector after deletion
Last updated on