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

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

Войти
Регистрация
Восстановить пароль
 
PointsEqual
ниначмуроФ
835 / 519 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
#1

Как вернуть больше одного значения из функции? - C++

03.02.2010, 17:51. Просмотров 451. Ответов 7
Метки нет (Все метки)

здрасти, как быть если функция должна возвратить не 1 значение а 2?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2010, 17:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как вернуть больше одного значения из функции? (C++):

Из функции вернуть более одного значения - C++
У меня есть функция: code(int y, int z){ int g=y+z; int f=y*z; return g,f; } main(){ int sum=code(5,15); } Как прописать...

Как вернуть сразу 2 значения из функции? - C++
Есть функция, которая генерирует 2 параметра. Как сделать так, чтобы функция их вернула? Оба сразу?

Как вернуть из функции два значения? - C++
Подскажите,как вернуть из ф-ции 2 значения .Вроде ,как то можно с помощью pair ,но как здесь это применить?Заранее спасибо Source.cpp ...

Как вернуть из функции два значения - C++
Доброго времени суток! Подскажите, пожалуйста, как вернуть два значения: row и column из функции. Спасибо! void ReadM(long double **mat,...

Как вернуть сразу 2 значения массива в функции? - C++
Собственно дан у меня например массив "aa", где l-левая граница, а r-правая. При выполнении кода мне надо сразу вернуть эти два стоящих...

Функции. Как после одного возвратного значения функции отталкиваться от возврата другой функции - C++
Написал код, в котором 2 функции одна возвращает стринговое значение, вторая должна бы вернуть значение, отталкиваясь от первой. Возможно...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
@KOT@
81 / 39 / 2
Регистрация: 29.01.2010
Сообщений: 386
03.02.2010, 17:56 #2
Попробуй использовать передать аргументы в функцию по ссылке. Либо использовать указатели. Как тебе удобнее.
1
PointsEqual
ниначмуроФ
835 / 519 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
03.02.2010, 17:58  [ТС] #3
про ссылки слышал, а кроме этих 2-ух способов больше никак нельзя?
0
@KOT@
81 / 39 / 2
Регистрация: 29.01.2010
Сообщений: 386
03.02.2010, 18:01 #4
А напиши какая у тебя функция? и зачем возвращать 2 переменных? Может удобнее разбить функцию на две?

И почему не хочешь юзать ссылки?
0
Зоти Сергей
228 / 226 / 13
Регистрация: 18.12.2009
Сообщений: 316
03.02.2010, 18:09 #5
Можно и без ссылок. Создайте обычную структуру, с двумя переменными.
Потом функцию с типом этой структуры.
Например вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
struct C2Values
{
    int First;
        int Second;
};
 
C2Values Get2Values()   //Эта ф-ция возвращает 2 значения.
{
    C2Values Result;
        Result.First=2;
        Result.Second=3;
        return Result;
}
 
 
int main(int argc, char* argv[])
{
    C2Values Values = Get2Values();
    return 0;
}
1
PointsEqual
ниначмуроФ
835 / 519 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
03.02.2010, 18:19  [ТС] #6
пишу транспортную задачу, в частности функцию нахождения оптимального плана:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int** BasicPlan(int** pMatrix,int count_supplier, int count_consumer){
    int i=1;
    int j=1;
    int optimised_plan=0;
    while ((i<count_supplier) && (j<count_consumer)){
        if (pMatrix[i][0]>=pMatrix[0][j]){
            pMatrix[i][j]=pMatrix[0][j];
            pMatrix[i][0]-=pMatrix[0][j];
        } else {
            pMatrix[i][j]=pMatrix[i][0];
            pMatrix[i+1][j]=pMatrix[0][j]-pMatrix[i][j];
            i++;
            pMatrix[i][0]-=pMatrix[i][j];
        }
        j++;
    }
    return pMatrix;
}

эта функция возвращает указатель на массив, а еще я хочу чтоб она возвратила сумму всех элементов массива.

Добавлено через 2 минуты
Зоти Сергей, вот это интересно. А можно только не структуру а класс?

Добавлено через 6 минут
Цитата Сообщение от @KOT@ Посмотреть сообщение
А напиши какая у тебя функция? и зачем возвращать 2 переменных? Может удобнее разбить функцию на две?

И почему не хочешь юзать ссылки?
ну ссылки мне както не подходят
0
Monte-Cristo
2789 / 1375 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
03.02.2010, 18:21 #7
Цитата Сообщение от PointsEqual Посмотреть сообщение
Зоти Сергей, вот это интересно. А можно только не структуру а класс?
Я конечно не Зоти Сергей, но тебе отвечу: Можно

В C++ отличие между классом и структурой заключается лишь в провах доступа по-умолчанию: в классе это private, а в структурах - public. Но никто не мешает тебе в структуре изменить эти права и добавить методы
1
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
03.02.2010, 18:32 #8
если производительность критична, лучше не использовать ф-й типа класса или структуры (ф-й, возвращающих такие значения). но если это некритично, то может быть самым удобным способом.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2010, 18:32
Привет! Вот еще темы с ответами:

Вернуть из функции 2 значения - C++
Как вернуть из функции 2 значения? Нужно вернуть строку и ее длину, но чтобы функция SendData() не вызывалась 2 раза. Сейчас узнаю длину...

For_each и аргументы callback-функции; Как передать callback'у больше одного аргумента - C++
Изучаю контейнеры и алгоритмы stl по Майерсу . С непривычки слегка охренел и запутался в них . В общем есть у меня простой вызов...

Программа не принимает больше одного значения, хотя должна - C++
Написал прогу по мотивам этого https://code-live.ru/post/cpp-classes/ урока. Ошибок вроде нет, но после компиляции программа принимает...

Необходимо вернуть значение функции из Булевского значения и посчитать факториал - C++
Стоит задача- Написато программу которая спрашивает пользователя - Рост, вес, и возраст а затем выдаёт размер одежды по след. формулам: ...


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

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

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