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

Эксперты обобщенного программирования - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Неполадки с isalpha http://www.cyberforum.ru/cpp-beginners/thread943514.html
Ниже я привел код самой функции. Суть в том, что я хочу открыть файл и прочитать с него только цифры,английские буквы,разделители и знаки пунктуации.То есть если символ являеться таковым, он заноситься в вектор и будет в дальнейшем использован. Например в файле лежит дальнейшее - rjnjhst jcyjdfkb vtnfk? - все хорошо, но если там лежит строка вида «njkcnjt», то всё,прога вылетает с ошибками,...
C++ знаки после запятой , формат float я вот что делаю: float i = *(float*)0x0000000; приравниваю значение адреса в формате флоат , мне нужно сделать чтобы переменная i равнялась флоату с одним знаком после запятой , не вот так 1.1234567 чтобы равна была, а вот так 1.1 Не хотелось бы услышать ответ - "делением на 10 или на 1000" - уже пробовал , геморно очень , может есть специальные функции или операторы? http://www.cyberforum.ru/cpp-beginners/thread943505.html
C++ Как исправить этот код?
Помогите исправить код. Знаю в чем проблема,но не знаю как решить. В книге дается схожий пример,и там все так же. Суть в том,что в классе задается статическая переменная-член и статическая функция ,которая дает возможность получить доступ к стат. переменной( которая находится в секции private). Но нужно ведь эту переменную инициализировать? Как исправить следующий код? #include <iostream>...
подскажите среду с компилятором под Win64 C++
У меня есть проект на стареньком борланде 6. До недавнего времени мне его возможностей хватало, однако не так давно столкнулся с нехваткой адресного пространства. Пришёл к очевидному выводу, что надо переходить на что-нибудь новенькое. Поставил RAD Studio XE3, но оказалось что под win 64 можно компилировать только из делфи, а в делфи я никогда не работал, а опять переучиваться, честно-говоря,...
C++ Крестики нолики http://www.cyberforum.ru/cpp-beginners/thread943484.html
Доброго времени суток, недавно, я решил написать программу Крестики нолики, опираясь на свои знания в С++, но при компиляции кода компилятор ошибок не выдает, но при запуске появляеться вот это: "an access violation (segmentation fault) raised in your program" #include <iostream> char Movies ={ {'-','-','-'}, {'-','-','-'}, {'-','-','-'} };
C++ Убрать туман войны в игре Какие инструменты/алгоритмы требуются, чтобы убрать туман войны в игре.. например Company of heroes 2 ? Что-то вроде трейнера... Предположим С++ с ассемблером знаю, как про )) подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2908 / 1337 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
27.08.2013, 18:50     Эксперты обобщенного программирования
Итераторы в С++ реализуются совершенно по-другому, нежели класс Iterator в Java. Так исторически сложилось.
An iterator is any object that, pointing to some element in a range of elements (such as an array or a container), has the ability to iterate through the elements of that range using a set of operators (with at least the increment (++) and dereference (*) operators).
Т.е. итератор это абстрактный объект, для которого переопределены некоторые операторы. Не обязательно даже отдельный класс.
В примитиве, для ArrayList'ов это может быть банальным указателем, т.к. в С++ есть арифметика для указателей.

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
#include <stdexcept>
#include <iostream>
 
template <class T>
class ArrayList {
 public:
  typedef T* Iterator;
  typedef T const *ConstIterator;
  ArrayList() : capacity(10), size(0), data(new T[capacity]) {}
  virtual ~ArrayList() {
    delete [] data;
  }
  void add(const T &value) {
    if (size < capacity) {
      data[size++] = value;
    } else {
      throw std::overflow_error("");
    }
  }
  Iterator begin() {
    return data;
  }
  Iterator end() {
    return data + size;
  }
  ConstIterator begin() const {
    return data;
  }
  ConstIterator end() const {
    return data + size;
  }
 private:
  int capacity;
  int size;
  T *data;
};
 
int main(int, char**) {
  ArrayList<int> arrayList;
 
  arrayList.add(1);
  arrayList.add(3);
  arrayList.add(2);
  
  for (ArrayList<int>::ConstIterator i = arrayList.begin();
    i != arrayList.end(); ++i) {
    std::cout << *i << std::endl;
  }
}
Вот такая гибкость языка.
 
Текущее время: 05:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru