Explicit bounds checks let code avoid reading outside a vector.

Bounds Checks

bounds_checks.cpp
#include <iostream>
#include <vector>

int main() {
    std::vector<int> scores{72, 85, 91};
    int index = ;

    bool inRange = index >= 0 && index < static_cast<int>(scores.size());
    int score = inRange ? scores[index] : -1;

    std::cout << "index=" << index << std::endl;
    std::cout << "inRange=" << inRange << std::endl;
    std::cout << "score=" << score << std::endl;
    return 0;
}
#include <iostream>
#include <vector>

int main() {
    std::vector<int> scores{72, 85, 91};
    int index = ;

    bool inRange = index >= 0 && index < static_cast<int>(scores.size());
    int score = inRange ? scores[index] : -1;

    std::cout << "index=" << index << std::endl;
    std::cout << "inRange=" << inRange << std::endl;
    std::cout << "score=" << score << std::endl;
    return 0;
}
#include <iostream>
#include <vector>

int main() {
    std::vector<int> scores{72, 85, 91};
    int index = ;

    bool inRange = index >= 0 && index < static_cast<int>(scores.size());
    int score = inRange ? scores[index] : -1;

    std::cout << "index=" << index << std::endl;
    std::cout << "inRange=" << inRange << std::endl;
    std::cout << "score=" << score << std::endl;
    return 0;
}
bounds check A vector index is safe only when it is greater than or equal to zero and less than the vector size.