Работая над назначением для класса, я столкнулся с этим (обратите внимание на условие цикла)
// This one works.
for (int k = 0; k + negwords[j].length() < comments[i].length(); k++) {
if (comments[i].substr(k, negwords[j].length()) == negwords[j]) {
negativeScore++;
}
}
//*/
/*/ This one doesn't: It fails with an out-of-bounds index.
for (int k = 0; k < comments[i].length() - negwords[j].length(); k++) {
if (comments[i].substr(k, negwords[j].length()) == negwords[j]) {
negativeScore++;
}
}
//*/
Почему первый работает, а второй - нет? Это что-то о порядке операций, bool-принуждении к int, операторной ассоциативности или OBOE?