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

Создание класса с вектором - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ реестр http://www.cyberforum.ru/cpp-beginners/thread237414.html
не могу найти исходники программы на visual c++ которые бы добавляли программу в авто запуск реестров и какую библиотек для этого надо подключить
C++ Найти наибольшую из площадей треугольников, вершины которых находятся в заданных точках Здравствуйте! Написать программу на C++: Даны координаты 4-х точек x1,y1, x2,y2, x3,y3, x4,y4. найти наибольшую из площадей треугольников, вершины которых находятся в заданных точках. (Формула Герона, состоит из двух чисел). http://www.cyberforum.ru/cpp-beginners/thread237412.html
Определить общее количество операций C++
В общем, я протупил создав эту http://www.cyberforum.ru/cpp-beginners/thread236913.html тему! Нужно было сразу написать условие задачи: Количество операций Определить общее количество операций сложения (+), вычитания (-) и умножения (*) в заданном арифметическом выражении. Технические условия Входные данные В единственной строке задано арифметическое выражение, не...
C++ Структуры, объединения и определяемые пользователем типы. Массивы структур
Здравтсвуйте! Помогите, пожалуйста, разобраться с одной задачкой! Условие следующее: Разработать программу обработки данных железнодорожного расписания. Известно расписание поездов, проходящих через станцию: номер поез¬да, назначение (откуда куда, например, Москва—Омск), часы и мину¬ты прибытия, часы и минуты отправления. Значения часов и минут це¬лые, положительные числа; число часов не...
C++ Сортировка. http://www.cyberforum.ru/cpp-beginners/thread237372.html
Доброе время суток. Разработать алгоритм сортировки методом простых вставок на основе сортировки таблицы адресов. Должны сортироваться записи типа record Key: integer; Info: <любой другой тип>; … end; Сортировку проводить по ключевому полю Key.
C++ Массив с русс буквами. Пишу программу в линуксе. int main() { char slova = { 'в',' д',' й',' х',' ч',' я',' т',' к',' д',' ж' }; return 0; } подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
03.02.2011, 08:03     Создание класса с вектором
Не надо пользоваться директивой using namespace. Это на корню убивает неймспейсы. Лучше уж использовать using std::vector, а еще лучше просто дописывать std. В наш-то век просвещенного копипаста...

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
#include <cstdio>
#include <cstddef>
#include <vector>
 
class Curve {
 public:
  // для удобства, сделаем определение своих типов
  // структура может стать легче, чем std::pair
  typedef struct Point {
    double x;
    double y;
    Point(double x_, double y_) : x(x_), y(y_) {} // для удобства добавления значений
                                                  // в виде Point(x, y)
  } Point;                                        // Curve::Point
  typedef std::vector<Point> VectorOfPoints;      // Curve::VectorOfPoints
  Curve() {}
  // помещает точку в массив
  void PushBack(const Point &value) {
    points_.push_back(value);
  }
  // возвращает точку из массива
  Point &At(size_t position) {
    return points_[position];
  }
  // удаление точки из массива
  void Erase(size_t position) {
    points_.erase(points_.begin() + position);
  }
  // возвращает количество точек в кривой
  inline size_t Size() const { return points_.size(); }
  // для удобства обращения к объекту, как к массиву Curve[i]
  Point &operator[](size_t position) { return At(position); }
 private:
  VectorOfPoints points_;                         // собственно, сам массив
};
 
int main(int argc, char **argv) {
  Curve curve;
  curve.PushBack(Curve::Point(1.1, 2.2));
  curve.PushBack(Curve::Point(2.1, 2.3));
  curve.PushBack(Curve::Point(4.6, 6.1));
  curve[2] = Curve::Point(4.0, 6.0);
  curve.Erase(1);
 
  for (int i = 0; i < curve.Size(); ++i) {
    Curve::Point point = curve.At(i);
    printf("Curve point %2d (%1.2f, %1.2f).\n", i, point.x, point.y);
  }
 
  return 0;
}
 
Текущее время: 09:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru