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

Поиск элемента в списке. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Предварительное объявление http://www.cyberforum.ru/cpp-beginners/thread362902.html
Добрый вечер, Есть файл file.h и file.cpp, в file.cpp я делаю подключение #include <boost/signal.hpp>, не подключаю в хэдер file.h умышленно, потому что этот хэдер подключается в много других файлов, проблема состоит в том чтобы в file.h объявить указатель на сигнал Signal *errorSignal; пробовал сделать предварительное объявление в file.h так: namespace boost { class signal<void...
C++ Введите с клавиатуры данные о температуре воздуха за месяц. Определите, сколько раз за месяц была самая низкая температура? Собственно, проходим циклы, возникли проблемы с этой задачей. Нуждаюсь в вашей помощи. http://www.cyberforum.ru/cpp-beginners/thread362890.html
getline C++
Я считываю число из входного потока, но дальше из входного потока уже не могу считать строку. Его надо очищать что ли? #include <stdafx.h> #include <iostream> #include <locale.h> #include <string> using namespace std; int main()
С чего начать программирование? C++
Не нашёл тему, уж извините. Проблема в том, что: Я не знаю программирования. Впринципе. Мне посоветовали С++. Как думаете? Стоит ли начинать именно с него или с чего то другого?
C++ Быстрое чтение и запись файлов http://www.cyberforum.ru/cpp-beginners/thread362874.html
Вопрос такой: имеется файл input.txt следующего вида: 5 12 6 7 44 2 1 2 3 4 5 2 343 634 54 1 123 2 345 56 56 11111 2222 333 44 5
C++ Уравнение с тремя переменными С++ Уважаемые форумчане, помогите решить задачу на С++. Задано уравнение третьей степени 11*x*x*x-13*y*y*y+17*z*z*z-4503=0 Определить, имеет ли оно решение в целых числах. Если имеет, то сколько их и чему они равны. кроме того обязательным условием является использование в коде подпрограммы. Сам я написал вот такой "сложный" код с двумя вложенными циклами без всяких подпрограмм, в результате... подробнее

Показать сообщение отдельно
kravam
быдлокодер
1693 / 880 / 44
Регистрация: 04.06.2008
Сообщений: 5,438
08.10.2011, 23:11     Поиск элемента в списке.
Задание интересно, единственное, что я не мог понять- что должна возвращать рекурсивная функция,
объект или указатель на объект, решил возвернуть объект

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
#include <string>
#include <list>
using namespace std;
 
 
//Это вот будет описание типа
class type {
 public:
  type (int);
  ~type () {};
 
 int f () {return x;};
 
 private:
  int  x;
};
 
type::type (int nomer) {
 x= nomer;
};
 
 
//Это вот прототип функции
type GetUnit(list<type*> , list<type*>::iterator );
 
int main() {
 
 //Кропаем список из 10-ти указателей.
 type** p= new type* [10];
 
 
 //Теперь каждый указатель проинициализируем конкретным объектом типа type
 for (int i= 0; i< 10; i++) {
  p[i]= new type (i);
 }
 
 //собсно список
 list<type*> List (p, p + 10);
 
 list<type*>::iterator itr= List.begin();
 
 //Вызываем функцию, которая вернёт нам переменную типа type
 type rez= GetUnit (List, List.begin());
 
 
 printf ("%d\n", rez.f());
 
 getchar ();
 return 0;
}
 
 
type GetUnit(std::list<type*> List, list<type*>::iterator itr) {
 
    if (itr!=List.end()) {
     printf ("(**itr).f()%3= %d\n", (**itr).f()%3);
     //Так, а здесь проверяем условие. Я придумал условие такое:
     //член x обхекта при делении по модулю на 3 должен давать 2
     if (((**itr).f()%3)== 2)
      return **itr;
     else
      return GetUnit (List, ++itr);
    }
    return type (-1);
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru