Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Cout <<
0 / 0 / 0
Регистрация: 21.04.2011
Сообщений: 8
1

Функция по поиску элемента

21.04.2011, 18:27. Просмотров 427. Ответов 7
Метки нет (Все метки)

всем доброго времени суток )))

господа программисты помогите написать функцию
C++
1
2
3
4
5
6
7
8
9
10
const int* find(const int& val, const int* begin, const int* end);
 
   for(int i = 0;i < size; i++)
   {  if( begin[i]==end[i] )
           return 0;
       else
           if( begin[i] == val)
               return begin;
   }
}
функия производит поиск значения на промежутке [begin, end)
результатом есть указатель на елемент val или NULL;

я не до конца понимаю как получится передать указатели на begin и end в мейне
помогите кому не трудно
заранее спасибо!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2011, 18:27
Ответы с готовыми решениями:

Не вызывается функция по поиску цифр из заданной строки
Никак не могу найти,где ошибка! Вроде все работает, а вот функция по поиску...

Программа по поиску наименьшего по модулю элемента матрицы не работает корректно
Задание: Составить алгоритм обработки матрицы А типа short размером М х N (М≤10...

Функция удаления элемента из дерева
В данной программе реализовано почти все,кроме фунции удаления,которую я так и...

Рекурсивная функция по удалению элемента
Помогите пожалуйста написать рекурсивную функцию для удаления элемента списка,...

Функция для удаления элемента
Есть ли функция в си++ для удаления элемента,например из текста?) Запрещено...

7
igorrr37
1899 / 1506 / 760
Регистрация: 21.12.2010
Сообщений: 2,538
Записей в блоге: 10
21.04.2011, 18:52 2
при ненайденном элементе возвращать лучше не NULL, а end:
http://www.cplusplus.com/reference/algorithm/find/
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
const int* find(const int* begin, const int* end, const int& val){
    for(; begin!=end; ++begin){
        if(*begin==val) break;
    }
    return begin;
}
 
int main(){
    int mas[]={1,2,3,4,5,6,7,8,9};
    const int* res=find(mas, mas+sizeof(mas)/sizeof(*mas), 2);
    std::cout<<"index= "<<res-mas<<"\n";
    return 0;
}
1
Cout <<
0 / 0 / 0
Регистрация: 21.04.2011
Сообщений: 8
21.04.2011, 19:02  [ТС] 3
ИГОРЬ, спасибо тебе огромное

подскажи вот ещё что....
а если бы я захотел, что бы begin был 3, а end 8 элементом массива как тогда бы выглядел мейн ??
0
igorrr37
1899 / 1506 / 760
Регистрация: 21.12.2010
Сообщений: 2,538
Записей в блоге: 10
21.04.2011, 19:18 4
begin тройка, end восьмёрка
C++
1
const int* res=find(mas+2, mas+sizeof(mas)/sizeof(*mas)-2, 6);
1
Cout <<
0 / 0 / 0
Регистрация: 21.04.2011
Сообщений: 8
21.04.2011, 22:22  [ТС] 5
спасибо, Игорь, извени что достаю, но как это сделать в шаблонах
C++
1
2
template<typename T> 
const T* find(const T& val, const T* begin, const T* end);
вот для такой
0
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
21.04.2011, 22:28 6
Cout <<,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
template<class T>
const T* find(const T& value, const T* begin, const T* end){
    for(; begin!=end; ++begin){
        if(*begin==val) break;
    }
    return begin;
}
 
int main(){
    int mas[]={1,2,3,4,5,6,7,8,9};
    const int* res=find(2, mas, mas+sizeof(mas)/sizeof(*mas));
    std::cout<<"index= "<<res-mas<<"\n";
    return 0;
}
1
Cout <<
0 / 0 / 0
Регистрация: 21.04.2011
Сообщений: 8
22.04.2011, 00:14  [ТС] 7
а в мейне что ничего не поменялось ???

Добавлено через 21 минуту
я всё понял спасибо

Добавлено через 1 час 22 минуты
скажите пожалуйста, а что не так в этой функции

C++
1
2
3
4
5
6
7
8
9
10
const F* min( const F* begin, const F* end){
 double* m = 0;
    for(; begin!=end; ++begin)
    {
       
        if(*begin < *m)
            *m = *begin;
    }
    return m;
}
она должна искать наименьший элемент и возвращать указатель на этот елемент
0
igorrr37
1899 / 1506 / 760
Регистрация: 21.12.2010
Сообщений: 2,538
Записей в блоге: 10
22.04.2011, 12:17 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
 
template <class T>
    const T* min_element (const T* first, const T* last ){
    const T* lowest = first;
    if (first==last){
        return last;
    }
    while (++first!=last){
        if (*first<*lowest){
            lowest=first;
        }
    }
    return lowest;
}
 
int main(){
    int mas[]={9,8,7,-1,2,3,4,-5,6,7};
    std::cout<<*min_element(mas, mas+sizeof(mas)/sizeof(*mas))<<"\n";
    return 0;
}
1
22.04.2011, 12:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2011, 12:17

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

Функция вставки элемента в циклический список
Добрый день. Возник такой вопрос. Нам дано циклический список. Нужно написать...

Функция нахождения максимального элемента массива
#include &lt;iostream.h&gt; main() {int i, max, A; for(i=1;i&lt;=5;i++)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru