考虑:
#include <vector>
int main()
{
std::vector <int> v;
v.reserve (100);
v[1] = 42;
}
我知道上面的代码调用了未定义的行为,因为在调用站点 for v[1]
,向量的大小根据v.size()
是 < 1。(它是零。)
但是,我花了大约最后一个小时来查看 C++ 标准中的引文,该引文直接或间接地阐明了这实际上是未定义的行为。
也许我错过了显而易见的事情。您能否提供至少来自 C++03 和可选的 C++11 标准的引文或引文来澄清这一点?