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

Какой тип должен быть у функции? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
Stas0n
3 / 4 / 0
Регистрация: 13.07.2011
Сообщений: 313
11.03.2012, 17:53     Какой тип должен быть у функции? #1
Сделал ф-цию, которая считывает файла и записывает результат работы с данными в vector.
решил проверить, что хранит векотор, сделал ф-цию вывода и, как выяснилось - они пустые..
какой должен быть тип ф-ции, чтобы он возвращал вектор?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2012, 17:53     Какой тип должен быть у функции?
Посмотрите здесь:

C++ В VC++ параметр const (_variant_t & data) непонятно какой должен быть
C++ В VC++ параметр const (_variant_t & data) непонятно какой должен быть
C++ Как определять какой метод должен быть статическим, а какой нет?
C++ Какой должен быть синтаксис для использования вложенного шаблонного класса?
C++ Почему в setnamedisc нужно использовать char * для установки значения, а при возвращении значения тип метода должен быть char* ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
11.03.2012, 22:44     Какой тип должен быть у функции? #21
Цитата Сообщение от hello19 Посмотреть сообщение
а можно пример увидеть...
ты б сначала свою функцию показал
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Stas0n
3 / 4 / 0
Регистрация: 13.07.2011
Сообщений: 313
11.03.2012, 22:47  [ТС]     Какой тип должен быть у функции? #22
да какая разница...
C++
1
2
3
4
5
6
7
8
// FileName - откуда считываю данные
// coord,value - те самые два массивчика
<тип функции> function_1 (const string &FileName, vector<int> coord, vector<double> value )
{
// тело ф-ции
//....
//...
}
на выходе нужно просто иметь 2 этих массива...
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
11.03.2012, 22:53     Какой тип должен быть у функции? #23
по первому
как то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
struct stVector
{
vector<int> a;
vector<double> b;
}
 
stVector fnc()
{
stVector tmp;
tmp.a.....// заполняем 
tmp.b.....// заполняем 
return tmp;
}
по второму тебе показал ForEveR,
C++
1
void foo(std::vector<int>& first, std::vector<double>& second);
по третьему
объяви глобально
vector<int> a;
vector<double> b;
и заполняй их в функции
а вообще я бы сделал класс
где вектора члены класса
а чтение метод
Stas0n
3 / 4 / 0
Регистрация: 13.07.2011
Сообщений: 313
11.03.2012, 23:00  [ТС]     Какой тип должен быть у функции? #24
в том коде, что ты написал вектора возвращаемые ф-цией идут ведь как независимые, так?
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
11.03.2012, 23:07     Какой тип должен быть у функции? #25
Цитата Сообщение от hello19 Посмотреть сообщение
вектора возвращаемые ф-цией идут ведь как независимые,
независимые от чего???
если типа 5 интов и 2 дубля то да
но вообще подумай про класс( это следующий шаг от структуры)
Stas0n
3 / 4 / 0
Регистрация: 13.07.2011
Сообщений: 313
11.03.2012, 23:08  [ТС]     Какой тип должен быть у функции? #26
ну вообщем понял, спасибо.
насчет класса - что-то мне кажется это не нужно.. да и потом я не настолько гуру плюсов)
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
11.03.2012, 23:27     Какой тип должен быть у функции? #27
Цитата Сообщение от hello19 Посмотреть сообщение
да и потом я не настолько гуру плюсов
А векторы используем
насчет класса
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class MyClass
{
public:
vector<int> a;
vector<double> b;
 
void fncRead(char* NameFile);
};
void MyClass::fncRead(char* NameFile)
{
a.....// заполняем 
b.....// заполняем 
}
 
int Main()
{
MyClass cls1;   // создаем объект
cls1.fncRead("lalala"); // считываем файл
cls1.a   // доступ к первому вектору
cls1.b  // доступ ко второму
}
Преимущества
можешь создать несколько экземпляров
и считывать разные файлы потом например их сравнить
если переопределить операторы то можно складывать вычитать копировать
добавь в методы свои функции обработки ты ведь не только считывать собираешься
запись например

повозишся с классом зато потом в майне вообше ничего делать не надо создавай объект и вперед
Stas0n
3 / 4 / 0
Регистрация: 13.07.2011
Сообщений: 313
12.03.2012, 00:05  [ТС]     Какой тип должен быть у функции? #28
ой чет сложно... ладно, буду разбираться, спасибо)
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
12.03.2012, 12:02     Какой тип должен быть у функции? #29
Функция может возвращать значения через параметры любых типов не зависимо от типа самой функции. Сама функция даже может быть void, это не мешает присваивать параметры. Но переменные параметры нельзя передавать по значению, а только по указателю, или по ссылке.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2012, 17:56     Какой тип должен быть у функции?
Еще ссылки по теме:

C++ Какой заголовок должен соответствовать приведенному телу функции?
C++ Какой должен быть итератор для константной ссылки на вектор?
C++ Какой должен быть прототип у оператора копирующего присваивания?

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

Или воспользуйтесь поиском по форуму:
Stas0n
3 / 4 / 0
Регистрация: 13.07.2011
Сообщений: 313
12.03.2012, 17:56  [ТС]     Какой тип должен быть у функции? #30
Цитата Сообщение от ValeryS Посмотреть сообщение
по первому
как то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
struct stVector
{
vector<int> a;
vector<double> b;
}
 
stVector fnc()
{
stVector tmp;
tmp.a.....// заполняем 
tmp.b.....// заполняем 
return tmp;
}
по второму тебе показал ForEveR,
C++
1
void foo(std::vector<int>& first, std::vector<double>& second);
по третьему
объяви глобально
vector<int> a;
vector<double> b;
и заполняй их в функции
а вообще я бы сделал класс
где вектора члены класса
а чтение метод
Вообще, мне кажется, что есть смысл передавать векторы по ссылке, т.к. потом я буду работать с довольно большими объемами информации и нет смысла их туда-сюда копировать...
Yandex
Объявления
12.03.2012, 17:56     Какой тип должен быть у функции?
Ответ Создать тему
Опции темы

Текущее время: 04:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru