use .at(i) instead of [i]. Compiler can optimize away the bounds check if it wants to