Беда с указателем - PullRequest
       3

Беда с указателем

0 голосов
/ 01 апреля 2020

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

Это то, что я сделал до сих пор:

#include <vector>
#include <iostream>
using namespace std;

int find(const vector<int> &r ,int number)
{
    int i=0;
    int x;
    for(i;i<r.size();++i)
    {
        if(r[i]==number)
        {
            break;
        }   
    }
    return 0;
}

int main()
{
    int result = find(vector<int> {3, -1, 7, 12, -5, 7, 10}, 7);
    cout << result << endl; 
}

И, я застрял, я не знаю, как вернуть индекс.

Ответы [ 3 ]

2 голосов
/ 01 апреля 2020

Вы должны добавить return i; вместо выхода из цикла и, возможно, вернуть -1 вместо 0, если число не найдено.

1 голос
/ 01 апреля 2020

Возвращает индекс i, если найден, иначе возвращает 0 после l oop, например:

int find( const std::vector<int>& r, const int number )
{
    for ( int i = 0; i < r.size(); ++i )
    {
        if ( r[i] == number )
        {
            return i;
        }
    }

    return 0;
}

x не используется в функции find.

0 голосов
/ 01 апреля 2020

Вы должны вернуть i из вашей функции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...