Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Вовастый
3 / 3 / 0
Регистрация: 03.09.2010
Сообщений: 12
#1

Нужны разъяснения по функции - C++

10.12.2012, 22:28. Просмотров 285. Ответов 6
Метки нет (Все метки)

Имеется функция:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdafx.h"
#include <cstdlib>
#include <iostream>
#include <vector>
 
using namespace std;
 
int* find(const vector<int> &vec, int value)
{
    for (int i = 0; i < vec.size(); ++i)
        if (vec[i] == value)
            return &vec[i];
    return 0;
}
Выдается сообщение: - тип возвращаемого значения не соответствует типу функции.
Если первый параметр описать не как константное значение, то все гуд. Не понимаю почему не работает первый вариант, так как пример взят из книги С.Липпмана "Основы программирования на языке С++" и не хочется упускать такие тонкости.
Заранее благодарен за объяснение.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2012, 22:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужны разъяснения по функции (C++):

Функции.Зачем нужны void функции? - C++
Здравствуйте люди.Я учусь по книге C++ для чайников.Там объясняют многое про функции.Одного не могу понять.Зачем нужны void функции с...

Прошу разъяснения массива string - C++
Хотел бы узнать что у меня получается вот при таком раскладе: string **tb=new string *; for(j=0;j&lt;20;j++) tb=new string; ...

Выделение памяти под string (разъяснения) - C++
Всем привет. Можете проконсультировать меня по некоторым вопросам связанные с выделением памяти под класс string. Вопрос 1. ... ...

Нужны исходники хэш-функции - C++
SOS!!! пришлите кто-нибудь исходники хэш-функции на sedar@narod.ru

Зачем нужны дружественные функции - C++
Здравствуйте! Начал изучать &quot;друзей&quot; в С++, но в моём странном учебнике данная тема описывается буквально в 2-х абзацах. В одном абзаце...

Для чего нужны указатели на функции? - C++
для чего нужны эти указатели на функции... не проще ли вызвать саму функцию, чем заводить под нее указатель и им пользоваться...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
10.12.2012, 22:31 #2
Цитата Сообщение от Вовастый Посмотреть сообщение
int* find
попробуйте сделать так
C++
1
int find
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
10.12.2012, 22:34 #3
Вовастый, вектор же константный. А вы просто указатель возвращаете, с которым можно делать что угодно
C++
1
const int* find(const vector<int> &vec, int value)
1
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
10.12.2012, 22:35 #4
так попробуйте.
C++
1
2
3
4
5
6
7
int find(const vector<int> &vec, int value)
{
    for (int i = 0; i < vec.size(); ++i)
        if (vec[i] == value)
            return vec[i];
    return 0;
}
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
10.12.2012, 22:38 #5
Цитата Сообщение от SeregaC++ Посмотреть сообщение
так попробуйте.
C++
1
2
3
4
5
6
7
int find(const vector<int> &vec, int value)
{
    for (int i = 0; i < vec.size(); ++i)
        if (vec[i] == value)
            return vec[i];
    return 0;
}
Тогда уж true или false возвращать)
0
Вовастый
3 / 3 / 0
Регистрация: 03.09.2010
Сообщений: 12
10.12.2012, 23:42  [ТС] #6
Цитата Сообщение от SeregaC++ Посмотреть сообщение
так попробуйте.
C++
1
2
3
4
5
6
7
int find(const vector<int> &vec, int value)
{
    for (int i = 0; i < vec.size(); ++i)
        if (vec[i] == value)
            return vec[i];
    return 0;
}
тогда функция будет возвращать значение, а должна возвращать адрес элемента вектора
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
10.12.2012, 23:45 #7
Вовастый, можно еще возвращать индекс элемента или -1.
Можно возвращать итератор на нужный элемент или vector end
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2012, 23:45
Привет! Вот еще темы с ответами:

Для чего нужны callback-функции - C++
Для чего нужны callback-функции? И можно привести какой-нибуль пример по их использованию.

Для чего нужны виртуальные функции и виртуальное наследование ? - C++
Для чего нужны виртуальные функции и виртуальное наследование ? Я нашел не сколько статей но не все понял. Заранее спасибо!

Ошибка отсутствия аргументов в функции, но они мне там и не нужны - C++
Объясните, пожалуйста, что не так в коде? Ошибка: Ошибка 1 error C3867: testing::get: в вызове функции отсутствует список аргументов;...

Для чего нужны функции void, не возращающие никаких значений? - C++
собственно сабж. выводить текст можно и без функции. а для чего делать что-то, что в дальнейшем и не пригодится в программе? #include...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.12.2012, 23:45
Ответ Создать тему
Опции темы

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