Architecture Diagram
┌──────────────────────┬────────────────────┬────────────────────────────────────────┐
│ Syntax │ Copies Data? │ Use Case │
├──────────────────────┼────────────────────┼────────────────────────────────────────┤
│ for (auto x : c) │ YES (Every item) │ Cheap primitives (int, char, double) │
│ for (auto& x : c) │ NO (Direct ref) │ Modifying container elements in-place │
│ for (const auto& x) │ NO (Read-only ref) │ Read-only inspection of objects/strings│
└──────────────────────┴────────────────────┴────────────────────────────────────────┘