通常,我想确保自己一次处于函数主体的顶部。我执行此操作的不同方法是:
// I don't like this much as it stops the program when I may not want to
assert( idx < v.size() );
if( !(idx < v.size()) )
{
// take corrective action ...
}
if( v.size() <= idx )
{
// take corrective action ..
}
Run Code Online (Sandbox Code Playgroud)
在第二种和第三种方法之间(也许还有其他方法),哪种方法更有效?
只需使用
idx < vec.size()
Run Code Online (Sandbox Code Playgroud)
并完成它。你不会让你的应用程序的任何通过在这个问题上花费一分钟快。
另外,请考虑检查访问权限:
try {
vec.at(idx) = stuff;
} catch (std::out_of_range& err) {
// oh dear god
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5065 次 |
| 最近记录: |