C/C++ Arena

std::vector in C++

How to use std::vector, the dynamic array of C++, plus size vs capacity, reserve, and iterator invalidation.

std::vector<T> is a resizable array that manages its own memory. It's the default container in C++: fast to iterate, indexable in O(1), and push_back is amortized O(1).

Example

#include <iostream>
#include <vector>

int main() {
    std::vector<int> v;
    v.reserve(4);
    for (int i = 1; i <= 4; i++) v.push_back(i * i);
    int sum = 0;
    for (int x : v) sum += x;
    std::cout << v.size() << " " << sum << "\n";
    return 0;
}

Output:

4 30

Watch it run: How a vector grows

Practice it