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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
Stas0n
3 / 4 / 0
Регистрация: 13.07.2011
Сообщений: 313
#1

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

11.03.2012, 17:53. Просмотров 1529. Ответов 29
Метки нет (Все метки)

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

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

Какой алгоритм должен быть у формулы? - C++
Здравствуйте! Пробую решать задачи по основам программирования и алгоритмизации по учебнику. На первой картинке задача, на второй моё...

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

Какой должен быть итератор для константной ссылки на вектор? - C++
Есть вектор, он передается в функцию так: #include <iostream> #include <vector> using namespace std; void func(vector<int> arg)...

В VC++ параметр const (_variant_t & data) непонятно какой должен быть - C++
Господа помогите кто чем может :-) ITablePtr pTable есть ф-я pTable->SetPrivateData(long dataTag,const _variant_t & data) с первым...

Какой должен быть синтаксис для использования вложенного шаблонного класса? - C++
Никак не могу найти, как это правильно написать? template <class T> class List { private: template <T> class Node { T...

29
ValeryS
Модератор
6652 / 5061 / 470
Регистрация: 14.02.2011
Сообщений: 16,923
11.03.2012, 18:42 #16
а исшо можно структуру из двух массивов
и её возвращать
0
-=ЮрА=-
11.03.2012, 19:13
  #17

Не по теме:

hello19, что именно тебя интересует???Свою матрицу 4х4 тысячи запихивая в векторы только ухудшишь быстродействие алгоритма. Покажи как хоть считывал...

0
Stas0n
3 / 4 / 0
Регистрация: 13.07.2011
Сообщений: 313
11.03.2012, 19:45  [ТС] #18
не не - тут совсем другое... надо просто чтобы векторы были

Добавлено через 43 секунды
просто данные из файла обрабатываю и записываю в 2 вектора, один дабл, второй - интовый
как сделать так, чтобы ф-ция возвращала их
0
ValeryS
Модератор
6652 / 5061 / 470
Регистрация: 14.02.2011
Сообщений: 16,923
11.03.2012, 19:52 #19
Цитата Сообщение от hello19 Посмотреть сообщение
как сделать так, чтобы ф-ция возвращала их
тебе же ответили
1 структурой
2
Цитата Сообщение от ForEveR Посмотреть сообщение
Или делать параметры выходными, т.е. передавать по ссылке.
3 глобальными переменными
0
Stas0n
3 / 4 / 0
Регистрация: 13.07.2011
Сообщений: 313
11.03.2012, 22:24  [ТС] #20
а можно пример увидеть...
0
ValeryS
Модератор
6652 / 5061 / 470
Регистрация: 14.02.2011
Сообщений: 16,923
11.03.2012, 22:44 #21
Цитата Сообщение от hello19 Посмотреть сообщение
а можно пример увидеть...
ты б сначала свою функцию показал
0
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 этих массива...
0
ValeryS
Модератор
6652 / 5061 / 470
Регистрация: 14.02.2011
Сообщений: 16,923
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;
и заполняй их в функции
а вообще я бы сделал класс
где вектора члены класса
а чтение метод
0
Stas0n
3 / 4 / 0
Регистрация: 13.07.2011
Сообщений: 313
11.03.2012, 23:00  [ТС] #24
в том коде, что ты написал вектора возвращаемые ф-цией идут ведь как независимые, так?
0
ValeryS
Модератор
6652 / 5061 / 470
Регистрация: 14.02.2011
Сообщений: 16,923
11.03.2012, 23:07 #25
Цитата Сообщение от hello19 Посмотреть сообщение
вектора возвращаемые ф-цией идут ведь как независимые,
независимые от чего???
если типа 5 интов и 2 дубля то да
но вообще подумай про класс( это следующий шаг от структуры)
0
Stas0n
3 / 4 / 0
Регистрация: 13.07.2011
Сообщений: 313
11.03.2012, 23:08  [ТС] #26
ну вообщем понял, спасибо.
насчет класса - что-то мне кажется это не нужно.. да и потом я не настолько гуру плюсов)
0
ValeryS
Модератор
6652 / 5061 / 470
Регистрация: 14.02.2011
Сообщений: 16,923
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  // доступ ко второму
}
Преимущества
можешь создать несколько экземпляров
и считывать разные файлы потом например их сравнить
если переопределить операторы то можно складывать вычитать копировать
добавь в методы свои функции обработки ты ведь не только считывать собираешься
запись например

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

В VC++ параметр const (_variant_t & data) непонятно какой должен быть - C++
Здарствуйте господа Я создаю репорт с помощью 'Report Designer Component' IApplicationPtr pApp; IReportPtr pRep; IReportPtr...

Какого типа должен быть 3-ий аргумент функции make_heap? - C++
make_heap(Iterator first,Iterator last,Compare comp); Так вот: &quot;Как написать 3-ий параметр?&quot; Я думал это: true или false, но выдает...

Какой заголовок должен соответствовать приведенному телу функции? - C++
{ float rez; rez = sin( x )+float( a%b ); return rez; } Варианты ответов: 1. char f1 ( int x, int a, int b ) 2. void f5...

Почему в setnamedisc нужно использовать char * для установки значения, а при возвращении значения тип метода должен быть char* ? - C++
Вопрос такой, почему в методе setnamedisc нужно использовать char *s для установки значения, а при возвращении значения в методе...


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

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

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