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

В списке целых чисел подсчитать количество переменных знаков. Вывести между какими элементами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ компилятор http://www.cyberforum.ru/cpp-beginners/thread363673.html
Здравствуйте, я написал код. а чтоб скомпилировать у меня нету компилятора, удалил по ошибке, а скачивать скорость не позволяет. Я обратился к вам чтоб попросить вас скомпилировать, и выслать скриншот полученного ответа. Заранее спасибо #ifdef TIME5_H #define TIME5_H class Time { public: Time (int=0, int=0, int=0); void setHour(int); void setMinute (int); void setSecond (int);
C++ Передача массива Функции, ошибка VS 2010 ругаеться ( Код из книги Дейтлов Что не так ? Как можно по другому подскажите пожалуйста #include <iostream> #include <iomanip> using namespace std; void modArr(int ,int); int main() { http://www.cyberforum.ru/cpp-beginners/thread363670.html
C++ Инкапсуляция, ссылка на функцию
Делаю задание по инкапсуляции, реализовать 3 вида списков в 1 программе, причем списки как подкл модули и снаружи только выбор типа при создании и функции работы. есть функция int (* GetData)(ListNode *); я хочу ее определить чтобы она делала (int)((ListOC *)(ListNode *a)->data) причем выбор типа списка контролируется кейсами при создании. Т.е. просто писать это в функции не могу, нужно чтобы...
объяснить функцию C++
Всем привет! Есть код: #include<conio.h> #include<iostream.h> class integer1 { int val; public: integer1(int v0 ) {val=v0;}
C++ помогите с решением зад. в с++ http://www.cyberforum.ru/cpp-beginners/thread363634.html
надо создать матрицу8*9,найти максимальные значения по строкам и столбцам,полученые значения упорядочить по убыванию.буду благодарен:)
C++ Добавление строк в масив строк Такой вот вопрос как в С++ сделать масив строк(строки статичной длинны), но чтобы можна было добавить ещё строки? подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
09.10.2011, 20:33     В списке целых чисел подсчитать количество переменных знаков. Вывести между какими элементами
Something like this.
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
#include <iostream>
#include <ctime>
#include <cstdlib>
 
// базовый класс элемента связного списка
// так же содержит некоторую логику
struct node_base_ {
  node_base_ *next; // указатель на следующую запись
  node_base_ *prev; // указатель на предыдущую запись
  // при создании без параметров, поля указывают сами на себя
  node_base_() : next(this), prev(this) {}
  // при задании параметров, реализует "вставку" элемента в список
  node_base_(node_base_ *next_, node_base_ *prev_)
    : next(next_), prev(prev_) {
    prev_->next = this;
    next_->prev = this;
  }
  // при удалении элемента удаляет разрыв в списке
  virtual ~node_base_() {
    prev->next = next;
    next->prev = prev;
  }
};
 
// шаблонная структура элемента связного списка
template <class Tp_>
struct node_: public node_base_ {
  Tp_ value;  // содержимое элемента
  // конструктор, вызывает базовый
  node_() : node_base_() {}
  // конструктор с параметрами, вызывает базовый
  node_(node_base_ *next_, node_base_ *prev_, const Tp_ &value_)
    : node_base_(next_, prev_), value(value_) {}
};
 
// шаблонный класс итератора двусвязного списка
template <class ValueType,
          class Pointer = ValueType*, class Reference = ValueType&>
class iterator_base_ {
 public:
  typedef ValueType  value_type;
  typedef Pointer    pointer;
  typedef Reference  reference;
  typedef node_base_ node_base;
  typedef node_<value_type> node;
  iterator_base_() : data_(0) {}
  iterator_base_(node_base *data) : data_(data) {}
  // приведение к типу node для реализации вставки элемента 
  // (допущение для упрощения)
  operator node*() { return (node*)data_; }
  iterator_base_ &operator++() {
    data_ = data_->next;
    return *this;
  }
  iterator_base_ operator++(int) {
    iterator_base_ result(data_);
    data_ = data_->next;
    return result;
  }
  iterator_base_ &operator--() {
    data_ = data_->prev;
    return *this;
  }
  iterator_base_ operator--(int) {
    iterator_base_ result(data_);
    data_ = data_->prev;
    return result;
  }
  iterator_base_ operator-(int count) {
    iterator_base_ result(data_);
    while (count--) --result;
    return result;
  }
  iterator_base_ operator+(int count) {
    iterator_base_ result(data_);
    while (count--) ++result;
    return result;
  }
  bool operator==(const iterator_base_ &other) const {
    return data_ == other.data_;
  }
  bool operator!=(const iterator_base_ &other) const {
    return data_ != other.data_;
  }
  value_type &operator*() { return   ((node*)data_)->value; }
  value_type *operator->() { return &((node*)data_)->value; }
 private:
  node_base *data_;
};
 
template <class ValueType>
class list {
 public:
  typedef ValueType value_type;
  typedef ValueType& reference;
  typedef node_<value_type> node;
  typedef node_base_ node_base;
  typedef iterator_base_<value_type> iterator;
  list() : data_(new node_base()) {}
  ~list() {
    clear();
    delete data_;
  }
  int size() const {
    int result = 0;
    for (iterator i = begin(); i != end(); ++i)
      ++result;
    return result;
  }
  bool empty() {
    return (data_->next == data_ && data_->prev == data_);
  }
  void clear() {
    while (!empty()) delete data_->next;
  }
  reference back() { return *(end() - 1); }
  reference front() { return *begin(); }
  iterator begin() const { return data_->next; }
  iterator end() const { return data_; }
  iterator insert(iterator before, const value_type &value) {
    return new node((node_base_*)before, ((node_base_*)before)->prev, value);
  }
  iterator find_first(const value_type &what) {
    iterator result = begin();
    while (result != end() && *result != what)
      ++result;
    return result;
  }
  iterator erase(iterator what) {
    iterator result = what + 1;
    delete (node*)what;
    return result;
  }
  // erases elements in range [begin, end)
  iterator erase(iterator begin, iterator end) {
    while (begin != end)
      begin = erase(begin);
    return begin;
  }
  iterator push_back(const value_type &value) {
    return insert(end(), value);
    //return new node(data_, data_->prev, value);
  }
 private:
  node_base *data_; // элемент, находящийся "перед" списком и сразу
                    // "за" списком
};
 
template <class ValueType>
std::ostream &operator<<(std::ostream &stream,
  const list<ValueType> &alist) {
  for (typename list<ValueType>::iterator i = alist.begin();
    i != alist.end(); ++i)
    stream << *i << " ";
  return stream;
}
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
  list<int> alist;
  for (int i = 0; i < 25; ++i)
    alist.push_back(rand() % 11 - 5);
  std::cout << alist << std::endl;
  
  list<int>::iterator first = alist.begin();
  list<int>::iterator second = first + 1;
  int signSwitches = 0;
  while (second != alist.end()) {
    if (*first * *second < 0)
      ++signSwitches;
    ++first;
    ++second;
  }
  std::cout << "Sign switched " << signSwitches << " time"
    << ((signSwitches != 1) ? "s" : "" ) << "." << std::endl;
}
 
Текущее время: 19:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru