Положение о возврате выписки - PullRequest
0 голосов
/ 19 января 2019

Я пишу некоторую функцию, которая в основном принимает на входе диапазон и одномерный вектор. Он смотрит на каждое число в диапазоне значений, заданных для вектора, так что:

1) Если число слева от него равно 0, они меняются местами.

2) Если число слева от него равно этому, они добавляют.

Теперь до сих пор это было хорошо. Проблема возникает, когда я пытаюсь добавить операторы возврата:

1) Должно возвращаться значение True после всех итераций завершено и по крайней мере одно из условий if введено в каждой итерации.

2) Должно возвращаться значение false после того, как все итераций завершены и ни одно из условий не введено.

Теперь, если я помещу эти операторы return в циклы, они завершат эту функцию здесь, но это нежелательно, так как сначала нужно пройти все итерации. Сравним ли текущий код с этим или мне нужно переделать его другим способом (если нет, куда могли бы пойти операторы возврата?)

1 Ответ

0 голосов
/ 19 января 2019
bool proc_num(std::vector<int>&v, int LB, int UB) {            
    bool check = false;
    for( int i=LB+2 ; i<UB; i++) {
        for(int j = i-1; j>LB; j--) {
            if(v[j] == 0){
                v[j] = v[i];
                check = true;
            } else if(v[j] == v[i]) {
                v[j]= v[j]+v[i];
                v[i] = 0;
                check = true;
            }
        }
    }
    return check;
}

Вы можете просто добавить логическое значение, чтобы убедиться, что хотя бы одно из условий if введено.

...