我有这个简单的测试代码,它创建一个包含 2 个元素的向量并打印它的大小,然后打印第一个元素:
#include <vector>
#include <iostream>
using namespace std;
int main() {
vector<double> arr {0, 0.1};
cout << arr.size() << endl;
cout << arr[0] << endl;
}
代码编译并运行良好,并按预期输出 2,然后输出 0。
但是,当我对此文件运行 cppcheck 时,它会报告以下内容:
error: Out of bounds access in expression 'arr[0]' because 'arr' is empty. [containerOutOfBounds]
cout << arr[0] << endl;
^
但是
arr
显然不是空的!
这是误报还是我遗漏了什么?
Cppcheck版本2.12