Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 43
1

Не работает прога из учебника

06.11.2011, 13:54. Показов 671. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нашла очень хороший учебник в инете: то, что нужно, мало воды, много примеров. Как только захотела запустить прогу и посмотреть, как она работает, компилятор выдает ошибки. Подскажите, в чем дело. Спасибо.

Прога должна демонстрировать использование некоторых компонент-функций класса vector.
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include <iostream>
 
using std::cin;
 
using std::cout;
 
using std::endl;
 
#include <vector>
 
template<class T>
 
void PrintVector(const std::vector<T> &vect);
 
main()
 
{ std::vector<int>  v,vv;  
 
  PrintVector(v);
 
  v.push_back(2);
 
  v.push_back(5);
 
  v.push_back(7);
 
  v.push_back(1);
 
  v.push_back(9);
 
  v[4]=3;                   // изменить значение 5-го элемента на 3
 
  v.at(3)=6;                // изменить значение 3-го элемента на 6
 
  try{ v.at(5)=0;         // 
 
  }
 
  catch(std::out_of_range e){  //доступ к элементу вне массива (вектора)
 
    cout<<"\nИсключение : "<<e.what();
 
  }
 
  PrintVector(v);
 
  v.erase(v.begin() + 2);   // удаление 3-го элемента (начальный индекс 0)
 
  PrintVector(v);
 
  v.insert(v.begin() + 3,7);// добавление 7 после 3-го элемента вектора
 
  PrintVector(v);
 
  vv.push_back(6);
 
  v.swap(vv);               // замена массивов  v  и vv
 
  PrintVector(v);
 
  PrintVector(vv);
 
  vv.erase(vv.begin()+1,vv.end()-2); //удаление со 2-го по n-2 элементов
 
  PrintVector(vv);
 
  vv.clear();               // чистка всего вектора
 
  PrintVector(vv);
 
  return 0;
 
} 
 
template<class T>
 
void PrintVector(const std::vector<T> &vect)
 
{ std::vector<T>::const_iterator pt;
 
  if (vect.empty())
 
    { cout << endl << "Vector is empty." << endl;
 
      return;
 
    }
 
  cout<<"ВЕКТОР   :"
 
           <<" Размер ="<<vect.size()
 
           <<"   вместимость ="<<vect.capacity()<<endl;
 
  cout<<"содержимое  :";
 
  for(pt=vect.begin();pt!=vect.end();pt++)
 
  cout<<*pt<<' ';
 
  cout<<endl;
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.11.2011, 13:54
Ответы с готовыми решениями:

Не работает пример из учебника
Приветствую, Вот...

Программа из учебника не работает
Только начала изучать java, первая простенькая программка по учебнику, и она не работает. Что не...

Пример из учебника не работает
В общем записал код из учебника Стивен Прата - Язык программирования C. Лекции и упражнения (5-е...

код с учебника не работает
Переписал код с учебника Э. Харрис - PHP-MySQL для начинающих &lt;html&gt; &lt;head&gt; &lt;title&gt;Row Your...

6
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
06.11.2011, 14:16 2
C++
1
int main()
стиль фигурных скобок страдает
0
0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 43
06.11.2011, 14:25  [ТС] 3
не в int main дело. это я уже сама исправила.
во-первых стопорится на этой строчке
C++
1
 catch(std::out_of_range e){  //доступ к элементу вне массива (вектора)
пишет, что
39 std::out_of_range' has not been declared
0
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
06.11.2011, 14:27 4
Цитата Сообщение от Мартиника Посмотреть сообщение
39 std::out_of_range' has not been declared
#include <stdexcept>
1
0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 43
06.11.2011, 14:49  [ТС] 5
модуль помог, спасибо, но теперь компилятор выдает след-е ошибки

C++
1
 std::vector<T>::const_iterator pt;
80 expected `;' before "pt"
C++
1
 for(pt=vect.begin();pt!=vect.end();pt++)
98 `pt' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
In function `void PrintVector(const std::vector<T, std::allocator<_CharT> >&) [with T = int]':
C++
1
  PrintVector(v);
20 instantiated from here
C++
1
std::vector<T>::const_iterator pt;
80 dependent-name ` std::vector<T,std::allocator<_CharT> >::const_iterator' is parsed as a non-type, but instantiation yields a type
80 say `typename std::vector<T,std::allocator<_CharT> >::const_iterator' if a type is meant
0
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
06.11.2011, 15:50 6
хз, чё за компилятор?
0
0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 43
06.11.2011, 16:01  [ТС] 7
dev C++
но на visual studio тож не идет
0
06.11.2011, 16:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2011, 16:01
Помогаю со студенческими работами здесь

Не работает пример из учебника
#include &lt;string.h&gt; #include &lt;cstdio&gt; using namespace std; // начало объявления класса class...

Не работает исходник из учебника
Здравствуйте! Читал учебник по WinAPI, дочитался до примера. Решил скописать, посмотреть как же...

Не работает класс переписанный из учебника
Полностью переписал класс из учебника, в итоге куча ошибок, как-то конфликтует со стандартным...

Простейший код из учебника не работает
Пытаюсь начать программировать на Qt. Но простейшие программки из учебника не работают. Например,...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru