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);