问题描述
当我使用C ++编程并且Visual Studio 2019引发错误时,它显示遇到的那一行。但是,当使用C ++进行编码并引发错误时,它不会确切显示在哪一行。因此,很难调试和修复程序。也许有些设置需要调整?
vector<int> myVector(2);
cout << myVector[4] << endl;
在这些示例中,这两个程序中的错误属于同一类别:向量(在C ++中)。
解决方法
不提供更多代码,而是查看您提供的最少c++
代码:
vector<int> myVector(2);
cout << myVector[4] << endl;
第二行的myVector
中似乎有太多元素。您将拥有UB,因为[]
运算符未分配更多元素。您只声明了2个元素。
现在,当您将vector
发送到cout
时,是说您有4个 false 。
这就是为什么出现错误的原因:“表达式:矢量下标超出范围” 。
如果您用两个vector
定义一个elements
,则只有两个索引0和1。
现在,如果您尝试查看vector
的大小,请使用.size()
函数,该函数返回vector
中的元素数。
vector<int> myVector(2);
cout << myVector.size() << endl;
您甚至可以通过for
循环执行以下操作:
#include <iostream>
#include <vector>
int main()
{
std::vector<int> myVector(2);
std::cout << myVector.size() << std::endl;
for (int i = 0; i < 10; i++)
myVector.push_back(i);
std::cout << myVector.size() << '\n';
return 0;
}