VecDeleteRange
Description
Delete count elements starting at start. Order of trailing elements is preserved.
Parameters
| Name | Direction | Description |
|---|---|---|
v |
in,out | Vector handle. |
start |
in | First deleted index. |
count |
in | Number of elements to delete. |
Success
Returns to the caller. The vector length shrinks by count; elements previously at indices >= start + count have shifted left by count. When copy_deinit is configured it is invoked on each dropped element.
Failure
Function cannot fail. start + count exceeding length is a caller bug and aborts via LOG_FATAL.
Usage example (Cross-references)
Usage examples (Cross-references)
- In
VecCharPtr.c:257:
size_t index = extract_u32(data, offset, data_size) % VecLen(vec);
size_t count = extract_u32(data, offset, data_size) % (VecLen(vec) - index + 1);
VecDeleteRange(vec, index, count);
}
break;- In
VecStr.c:266:
size_t index = extract_u32(data, offset, data_size) % VecLen(vec);
size_t count = extract_u32(data, offset, data_size) % (VecLen(vec) - index + 1);
VecDeleteRange(vec, index, count);
}
break;- In
VecInt.c:206:
uint64_t len = VecLen(vec);
if (len > 0 && start < len && count > 0 && start + count <= len) {
VecDeleteRange(vec, start, count);
}
break; // When we reach idx=3, delete several elements
if (idx == 3) {
VecDeleteRange(&vec, 0, 6); // Remove first 6 elements
WriteFmt("Deleted first 6 elements, new length={}, idx = {}\n", VecLen(&vec), original_length, idx);
}- In
Vec.Remove.c:212:
// Test VecDeleteRange function
bool test_vec_delete_range(void) {
WriteFmtLn("Testing VecDeleteRange");
// Create a vector of integers
- In
Vec.Remove.c:229:
// Delete range from index 2 to 4 (values 30, 40, 50)
VecDeleteRange(&vec, 2, 3);
// Check new length
- In
Vec.Remove.c:617:
int start_index = 2;
int count = 3;
VecDeleteRange(&vec, start_index, count); // Delete 30, 40, 50
// Check vector after L-value range deletion
- In
Vec.Remove.c:652:
// Test R-value delete range operation
VecDeleteRange(&vec, 2, 3); // Delete 30, 40, 50
// Check vector after R-value range deletion
// Test VecDeleteRange (regular delete range)
VecDeleteRange(&vec, 0, 2); // Delete 10 and 20
// Check vector length after range deletion
- In
Remove.h:77:
/// TAGS: Str, Delete, Range
///
#define StrDeleteRange(str, start, count) VecDeleteRange((str), (start), (count))
///
Last updated on