C++ 带有C++;(问题10050)

C++ 带有C++;(问题10050),c++,runtime,C++,Runtime,嗨,我的程序有问题,我真的不知道在哪里或如何解决它。这是密码 #包括 #包括 #包括 #包括 #包括 #包括 #包括 使用名称空间std; int main() { 布尔ok; int测试用例; scanf(“%d”和测试用例); 病媒日(测试案例); 病媒缔约方(测试案例); 向量hartals(2); for(int i=0;i

嗨,我的程序有问题,我真的不知道在哪里或如何解决它。这是密码

#包括
#包括
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
int main()
{
布尔ok;
int测试用例;
scanf(“%d”和测试用例);
病媒日(测试案例);
病媒缔约方(测试案例);
向量hartals(2);
for(int i=0;i
这个程序运行良好,它完成了它的工作,但是当我把它提交给评委时,我抛出了一个运行时错误,我找不到它在哪里

 vector<vector<int>> hartals(2);` 
testcases
可能不是2,因此
i
可以很容易地超出范围并调用可怕的代码。在您的机器上,程序显示的行为似乎“正常”。在评判系统上,你运气更好,程序崩溃了。听起来很奇怪,撞车是好运。发生故障时,你知道你有一个bug

给予

向量hartals(测试用例);

一个测试,看看它是否有帮助。可能会有更多的bug,但这可能是您现在遇到的问题。

感谢您没有使用
#include
。现在,如果您可以改变您的方式,不使用
使用名称空间std通常值得暂时交换
[]
s,用于调用
at
以利用
at
的边界检查。另外,在问题中添加程序应该执行的操作的简要摘要也是一个好主意。无关:看起来您仅使用
参与方
来调整
hartals
的内部
向量的大小。您可以在这里使用范围更窄的
int
,并保存一些动态分配。问题解决了。谢谢大家的回复和建议谢谢你的回复和帮助。这导致了运行时错误。
for (int i = 0; i < testcases; i++)
{
    ...
    hartals[i].resize(parties[i]);
vector<vector<int>> hartals(testcases);