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

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

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

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

10.12.2012, 22:28. Просмотров 282. Ответов 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;
}
Выдается сообщение: - тип возвращаемого значения не соответствует типу функции.
Если первый параметр описать не как константное значение, то все гуд. Не понимаю почему не работает первый вариант, так как пример взят из книги С.Липпмана "Основы программирования на языке С++" и не хочется упускать такие тонкости.
Заранее благодарен за объяснение.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2012, 22:28     Нужны разъяснения по функции
Посмотрите здесь:

Функции.Зачем нужны 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++
Здравствуйте! Начал изучать &quot;друзей&quot; в С++, но в моём странном учебнике данная тема описывается буквально в 2-х абзацах. В одном абзаце...

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
10.12.2012, 22:31     Нужны разъяснения по функции #2
Цитата Сообщение от Вовастый Посмотреть сообщение
int* find
попробуйте сделать так
C++
1
int find
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)
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;
}
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 возвращать)
Вовастый
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;
}
тогда функция будет возвращать значение, а должна возвращать адрес элемента вектора
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2012, 23:45     Нужны разъяснения по функции
Еще ссылки по теме:

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

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

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

приведите пожалуйста реальный прмиер: для чего нужны дружественные функции? - C++
приведите пожалуйста реальный прмиер: для чего нужны дружественные функции?


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

Или воспользуйтесь поиском по форуму:
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
10.12.2012, 23:45     Нужны разъяснения по функции #7
Вовастый, можно еще возвращать индекс элемента или -1.
Можно возвращать итератор на нужный элемент или vector end
Yandex
Объявления
10.12.2012, 23:45     Нужны разъяснения по функции
Ответ Создать тему
Опции темы

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