Skip to content

VecInit

VecInit

Description

Initialize vector. Default alignment is 1 It is mandatory to initialize vectors before use. Not doing so is undefined behaviour.

Usage example (from documentation)

  Vec(HttpRequest) requests = VecInit();

Usage example (Cross-references)

Usage examples (Cross-references)
        ValidateStr(s);
    
        StrIters sv     = VecInit();
        size     keylen = ZstrLen(key);
        }
    
        SysDirContents dc = VecInit();
    
        // Construct the search path with a wildcard
        }
    
        SysDirContents dc = VecInit();
    
        DIR *dir = opendir(path);
    
            // recursively explore directories and get files that need documentation
            Strs file_paths = VecInit();
            Scope(&file_paths, VecDeinit, {
                // temporary vector to store all directory paths to explore files in
        ReadCompleteFile(input_filename, &code.data, &code.length, &code.capacity);
    
        EnumEntries entries = VecInit();
    
        StrIter json        = StrIterFromStr(code);
        );
    
        Vec(int) vi = VecInit();
        VecForeachIdx(&vi, val, i) {
            WriteFmtLn("{}", val);
        Str  json    = StrInit();
    
        Vec(u32) numbers = VecInit();
        u32 num1 = 1, num2 = 2, num3 = 3;
        VecPushBack(&numbers, num1);
        VecPushBack(&strings, str3);
    
        Vec(bool) booleans = VecInit();
        bool bool1 = true, bool2 = false, bool3 = true;
        VecPushBack(&booleans, bool1);
        Str  json    = StrInit();
    
        Vec(i32) empty_numbers = VecInit();
        Vec(Str) empty_strings = VecInitWithDeepCopy(NULL, StrDeinit);
        Str  json    = StrInit();
    
        Vec(i32) empty_list = VecInit();
    
        JW_OBJ(json, {
        Str  json    = StrInit();
    
        Vec(i32) empty_arr  = VecInit();
        Vec(i32) filled_arr = VecInit();
        i32 val1 = 1, val2 = 2;
    
        Vec(i32) empty_arr  = VecInit();
        Vec(i32) filled_arr = VecInit();
        i32 val1 = 1, val2 = 2;
        VecPushBack(&filled_arr, val1);
    
        // Original data
        Vec(i32) original_numbers = VecInit();
        Vec(Str) original_strings = VecInitWithDeepCopy(NULL, StrDeinit);
    
        // Read back from JSON
        Vec(i32) parsed_numbers = VecInit();
        Vec(Str) parsed_strings = VecInitWithDeepCopy(NULL, StrDeinit);
    
        // Original empty data
        Vec(i32) empty_numbers = VecInit();
        Vec(Str) empty_strings = VecInitWithDeepCopy(NULL, StrDeinit);
        Str empty_str          = StrInit();
    
        // Read back from JSON
        Vec(i32) parsed_numbers = VecInit();
        Vec(Str) parsed_strings = VecInitWithDeepCopy(NULL, StrDeinit);
        Str  parsed_str         = StrInit();
        StrIter si1   = StrIterFromStr(json1);
    
        Vec(i32) items = VecInit();
    
        JR_OBJ(si1, {
            i32 x_value;
            Vec(i32) filled_items;
        } obj = {0, VecInit()};
    
        JR_OBJ(si, {
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data in unsorted order
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Check initial size and length
        // Create a vector of integers with default alignment (1)
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Check offsets
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
    
        // Create a valid Strs
        Strs sv = VecInit();
    
        // This should not crash
    
        // Create an invalid Strs by corrupting its fields
        Strs sv = VecInit();
    
        // Corrupt the vector to make it invalid
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Reserve more space than needed
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Initial capacity should be 0
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
    // Test basic vector initialization
    bool test_vec_init_basic(void) {
        WriteFmt("Testing VecInit\n");
    
        // Test with int type
        // Test with int type
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Check initial state
        // Test with struct type
        typedef Vec(TestItem) TestVec;
        TestVec test_vec = VecInit();
    
        // Check initial state
        // Create a source vector
        typedef Vec(int) IntVec;
        IntVec src = VecInit();
    
        // Add some data
    
        // Create a destination vector
        IntVec clone = VecInit();
    
        // Clone the source vector into the destination
        // Define a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Check initial state
        // Test with a struct type
        typedef Vec(TestItem) TestVec;
        TestVec test_vec = VecInit();
    
        // Check initial state
        // Create a valid vector
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // This should not abort
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some data
    
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some elements
    
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some elements
    
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add several elements
    
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add several elements
    
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add several elements
    
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add several elements
    
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add several elements
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Test VecPushBackL
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some initial elements
    
        // Now test VecInsertRangeFastR in isolation
        IntVec vec2 = VecInit();
    
        // Add some initial elements
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some initial elements
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Test pushing to empty vector
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Push some elements to the back
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Push some elements to the front
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Insert at index 0 (empty vector)
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Push an array to the back
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Push an array to the front of empty vector
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Push some elements first
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Add some initial elements
    
        // Create another vector with elements to insert
        IntVec src          = VecInit();
        int    src_values[] = {40, 50, 60};
        VecPushBackArrR(&src, src_values, 3);
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec1 = VecInit();
    
        // Add some elements to first vector
    
        // Create second vector
        IntVec vec2 = VecInit();
    
        // Add some elements to second vector
        // Create a vector of integers
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Test R-value insert operations
        // Create a vector of integers without copy_init
        typedef Vec(int) IntVec;
        IntVec vec = VecInit();
    
        // Test VecPushBackL
    
        // Test VecMergeL
        IntVec vec2         = VecInit();
        int    merge_vals[] = {140, 150, 160};
        for (int i = 0; i < 3; i++) {
    
    #ifdef __cplusplus
    #    define StrInit() (Str VecInit())
    #else
    ///
    /// FAILURE : NULL
    ///
    #    define StrInit() ((Str)VecInit())
    #endif
Last updated on