gsa*_*ras 1 c++ arrays error-handling indexoutofboundsexception c++11
这是我的代码:
template<class T>
void Matrix<T>::set(const int i, const int j, const T v) {
    try {
        m[i][j] = v;
    } catch (std::exception& e) {
        std::cout << "Standard exception: " << e.what() << std::endl;
    }
}
但是,我在这方面安全吗?我的意思是,有可能i和/或j超出界限,但程序收到分段错误,然后抛出异常?
如果这不是一个好方法,那我应该使用assert()吗?
只需添加边界检查.
C++不对数组进行边界检查,更不用说抛出异常了.
使用vectors/std :: array,您可以使用该.at()方法而不是[]运算符来进行检查.
最后,GSL引入了array_view允许您添加"零成本注释"的内容,以便分析工具可以进行边界检查.尚未出现GSL事实上的标准实施.也可以看看:
| 归档时间: | 
 | 
| 查看次数: | 130 次 | 
| 最近记录: |