Skip to content

C++ Arrays

Overview

Arrays are collections of elements of the same type stored in contiguous memory locations. C++ provides both C-style arrays and modern container alternatives.

C-style Arrays

Basic Array Declaration and Initialization

cpp
#include <iostream>

int main() {
    // Declaration and initialization
    int arr1[5] = {1, 2, 3, 4, 5};
    int arr2[] = {10, 20, 30, 40, 50};  // size inferred
    int arr3[5] = {1, 2, 3};  // remaining elements initialized to 0
    
    // Accessing elements
    std::cout << "First element: " << arr1[0] << std::endl;
    std::cout << "Last element: " << arr1[4] << std::endl;
    
    // Modifying elements
    arr1[2] = 100;
    std::cout << "Third element: " << arr1[2] << std::endl;
    
    return 0;
}

Multidimensional Arrays

cpp
#include <iostream>

int main() {
    // 2D array
    int matrix[3][4] = {
        {1, 2, 3, 4},
        {5, 6, 7, 8},
        {9, 10, 11, 12}
    };
    
    // Accessing 2D array elements
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 4; j++) {
            std::cout << matrix[i][j] << " ";
        }
        std::cout << std::endl;
    }
    
    return 0;
}

Arrays and Pointers

cpp
#include <iostream>

int main() {
    int arr[] = {10, 20, 30, 40, 50};
    int* ptr = arr;  // array name decays to pointer
    
    // Access using pointer arithmetic
    for (int i = 0; i < 5; i++) {
        std::cout << "arr[" << i << "] = " << *(ptr + i) << std::endl;
        std::cout << "arr[" << i << "] = " << ptr[i] << std::endl;  // equivalent
    }
    
    return 0;
}

Modern C++ Alternatives

std::array (C++11)

cpp
#include <iostream>
#include <array>

int main() {
    // std::array - fixed-size container
    std::array<int, 5> arr = {1, 2, 3, 4, 5};
    
    // Access elements
    std::cout << "Size: " << arr.size() << std::endl;
    std::cout << "First element: " << arr.front() << std::endl;
    std::cout << "Last element: " << arr.back() << std::endl;
    
    // Range-based for loop
    for (int value : arr) {
        std::cout << value << " ";
    }
    std::cout << std::endl;
    
    return 0;
}

std::vector (Dynamic Array)

cpp
#include <iostream>
#include <vector>

int main() {
    // std::vector - dynamic array
    std::vector<int> vec = {1, 2, 3, 4, 5};
    
    // Add elements
    vec.push_back(6);
    vec.push_back(7);
    
    // Access elements
    std::cout << "Size: " << vec.size() << std::endl;
    std::cout << "Element at index 2: " << vec[2] << std::endl;
    std::cout << "Element at index 2 (safe): " << vec.at(2) << std::endl;
    
    // Iterate
    for (int value : vec) {
        std::cout << value << " ";
    }
    std::cout << std::endl;
    
    return 0;
}

Common Array Operations

cpp
#include <iostream>
#include <algorithm>
#include <numeric>

int main() {
    int arr[] = {5, 2, 8, 1, 9, 3};
    int size = sizeof(arr) / sizeof(arr[0]);
    
    // Find sum
    int sum = std::accumulate(arr, arr + size, 0);
    std::cout << "Sum: " << sum << std::endl;
    
    // Find maximum
    int max = *std::max_element(arr, arr + size);
    std::cout << "Maximum: " << max << std::endl;
    
    // Sort array
    std::sort(arr, arr + size);
    std::cout << "Sorted: ";
    for (int value : arr) {
        std::cout << value << " ";
    }
    std::cout << std::endl;
    
    return 0;
}

Content is for learning and research only.