Skip to content
VecForeachPtrReverse

VecForeachPtrReverse

Description

Walk each element of v backward, binding var to a pointer to the element. Use when the body mutates elements in place. Convenience wrapper around VecForeachPtrReverseIdx. See VecForeachPtrReverseIdx for the full SUCCESS/FAILURE contract.

Usage example (Cross-references)

Usage examples (Cross-references)
                if (VecLen(vec) > 0) {
                    size_t total_len = 0;
                    VecForeachPtrReverse(vec, str_ptr) {
                        total_len += ZstrLen(*str_ptr);
                    }
                if (VecLen(vec) > 0) {
                    size_t total_len = 0;
                    VecForeachPtrReverse(vec, str_ptr) {
                        total_len += StrLen(str_ptr);
                    }
                if (VecLen(vec) > 0) {
                    int sum = 0;
                    VecForeachPtrReverse(vec, item_ptr) {
                        sum += *item_ptr;
                    }
    // Test VecForeachPtrReverse macro
    bool test_vec_foreach_ptr_reverse(void) {
        WriteFmt("Testing VecForeachPtrReverse\n");
    
        // Create a vector of integers
        // Use VecForeachPtrReverse to increment values in reverse order
        int increment = 1;
        VecForeachPtrReverse(&vec, item_ptr) {
            *item_ptr += increment++;
        }
    /// TAGS: Str, Foreach, Iterate, Reverse
    ///
    #define StrForeachPtrReverse(str, chrptr) VecForeachPtrReverse((str), (chrptr))
    
    ///
Last updated on