string.at()导致Std::out_of_range错误
std::out_of_range error caused by string.at()
我已经得到了这个代码:
int n,m; // n - rows count , m - columns in each row count
cin >> n >> m;
string wiersze[n];
int wynik=0;
for(int i = 0; i < n;i++)
{
cin >> wiersze[i];
}
for(int i = 0; i < n;i++)
{
for(int j =0; j<m-1;j++)
{
cout << j << " " << j+1<<endl; // debbuging line
cout<<wiersze[i].at(j)<<wiersze[i].at(j+1)<<endl; // debbuging line
if(wiersze[i].at(j) == wiersze[i].at(j+1))wynik++;
}
}
当字符串中有两个字母时,我应该增加变量wynik
。我不知道为什么,但是在这个例子中运行代码:
4 4
aaba
aaab
aaba
bbaa
导致if(wiersze[i].at(j) == wiersze[i].at(j+1))wynik++;
行string::at
上的std::out_of_range
错误。
我试着调试并在循环中添加了两行来看看发生了什么。结果:
0 1
aa
1 2 ab
3
英航0 1
aa
2
aa
3
ab0 1
aa
2
ab3
英航0 1
bb
2
英航23
aa
请看最后两行——它确切地表明,通过计算下一行不存在!当然,我试图寻找"愚蠢的"错误和小的调试,但除了上面所示之外,没有任何结果。
首先你不能为数组分配内存。在wiersze[n]
中,变量n必须在编译时已知,但在这里不是这样。你必须动态地初始化数组:
string* wiersze = new string[n];
相关文章:
- 为什么我的向量::擦除调用会抛出"vector subscript out of range"?
- C++ 向量加减抛出"expression: vector subscript out of range."错误
- 如何解决'vector subscript out of range'错误?
- 在 std::unordered_map 中插入新的键/值对会导致"out of range"异常
- QList::operator[]中的断言失败<T>:QJoysticks 中的"index out of range"
- 尝试获取矩阵的正确对角线会导致"vector out of range"错误
- 如何使用 mpi 分散修复"vector subscript out of range"?
- 如何修复邻接列表中的"Debug Assertion Failed" "vector subscript out of range"
- "Vector subscript out of range",在返回声明?
- QList<T>::operator[]: "index out of range" 中的断言失败
- 使用 top() 时收到错误"cannot dereference out of range deque iterator"
- pop_back() 导致"Vector subscript out of range"
- 数组未加载 - "index out of range in objectAtIndex()"
- 使用矢量"String subscript out of range"错误
- 我收到"vector subscript out of range"错误
- 我正在"string subscript out of range error".我不知道为什么
- 这里有一个错误:"string subscript is out of range"
- 每次调试此代码时,我都会得到"subscript out of range error"。有人可以帮我查明一个或多个错误吗?
- 为什么输入时出现错误? "expression: string subscript out of range"
- 为什么我的程序有一个实例,其中"Vector Subscript out of Range"?