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

Очередь, работа с точками. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти сумму элементов строки матрицы, в которой расположен элемент с наименьшим значением http://www.cyberforum.ru/cpp-beginners/thread415045.html
В данной действительной квадратной матрице порядка n найти сумму элементов строки , в которой расположен элемент с наименьшим значением. Предполагается, что такой элемент единственный. Заранее благодарен! Добавлено через 2 часа 5 минут Неужели никто не хочет мне помочь?
C++ Создать программу используя class. Никак не получается предложите свои варианты решения. Буду очень благодарен Рассмотрим последовательность, образованную дробями: 1/1, 2/1, 3/2,.., в которой числитель(знаменатель) следующего члена последовательности получается сложением числителей(знаменателей) двух предыдущих членов.Числители двух первых дробей равны 1 и 2, знаменатели 1 и 1. Найти первый член такой последовательности, который отличается от предыдущего члена не более чем на 0,001. http://www.cyberforum.ru/cpp-beginners/thread415028.html
C++ Напишите комментарии к строковой функции
char* substrdel (char *str, char *substr, int *substr_flag) char *substr_of_str; int i; substr_of_str=strstr(str,substr); if (substr_of_str !=null) { *substr_of_str='\0'; // особенно интересует этот момент и дальнейший цикл for (i=0;i<strlen(substr);i++) substr_of_str++; strcat(str,substr_of_str)l
C++ Цикл ввода с условием
Добрый вечер. У меня есть вопрос касательно кода. Как его зациклить? Я имею ввиду, чтобы на шаге "Oshibka" возвращало снова к вводу. Также и при проверке на отрицательность. Без goto, разумеется:jokingly: #include <stdio.h> #include <stdlib.h> int main(void) { float m, n; printf("Vvedite polozhitelnie 4isla: \n"); if(scanf("%f%f", &m, &n)!=2) {
C++ Метод Гаусса, LU разложение матриц. http://www.cyberforum.ru/cpp-beginners/thread415010.html
Дана система Ax=b, где A = (размер матрицы 4 на 4, все элементы известны, есть отрицательные, нулей нет), b = ( столбец свободных членов, b1....b4, нулей нет, отрицательных нет). 1) Решить её методом Гаусса с постолбцовым выбором главного элемента и итерационным уточнением до достижения точности эпсилон. 2) Выполнить LU разложение матрицы А и с его помощью получить det A и решение x системы. 3)...
C++ Функция Delete(s,n,l) Назначение: удаление из строки s подстроки, начиная с позиции n, длиной l помогите задачку написать. подробнее

Показать сообщение отдельно
lemegeton
2917 / 1346 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
23.12.2011, 00:27     Очередь, работа с точками.
По-уму тут надо еще итераторы добавить, но будем упрощать.

Очередь классическая -- FIFO.Ни одного метода, больше трех строчек, в коде нет. Пример работы классов упрощен.
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
#include <iostream>
#include <cstdlib>
#include <ctime>
 
struct NodeBase {
  NodeBase() : next(this), prev(this) {}
  NodeBase(NodeBase *next_, NodeBase *prev_)
    : next(next_), prev(prev_) {
    next->prev = this;
    prev->next = this;
  }
  virtual ~NodeBase() {
    next->prev = prev;
    prev->next = next;
  }
  NodeBase *next;
  NodeBase *prev;
};
 
template <class T>
struct Node : public NodeBase {
  Node(NodeBase *next_, NodeBase *prev_, const T &data_)
    : NodeBase(next_, prev_), data(data_) {}
  T data;
};
 
template <class T>
class Queue {
 public:
  Queue() : base() {}
  ~Queue() {
    clear();
  }
  void pushBack(const T &data) {
    new Node<T>(&base, base.prev, data);
  }
  T front() const {
    return (static_cast< Node<T>* >(base.next))->data;
  }
  T popFront() {
    T data = front();
    delete base.next;
    return data;
  }
  void clear() {
    while (!isEmpty())
      delete base.next;
  }
  bool isEmpty() const {
    return base.next == &base;
  }
  friend std::ostream &operator<<(std::ostream &stream, Queue &queue) {
    for (NodeBase *node = queue.base.next; node != &queue.base; node = node->next)
      stream << ((Node<T>*)node)->data << " ";
    return stream;
  }
 private:
  NodeBase base;
};
 
class Point {
 public:
  Point(int x, int y) : x_(x), y_(y) {}
  int getX() const { return x_; }
  void setX(int value) { x_ = value; }
  int getY() const { return y_; }
  void setY(int value) { y_ = value; }
  static Point random() {
    return Point(rand() % 10, rand() % 10);
  }
 private:
  int x_, y_;
};
 
std::ostream &operator<<(std::ostream &stream, const Point &point) {
  return stream << "[" << point.getX() << ":" << point.getY() << "]";
}
 
template <class Q, class Generator>
void generate_n(Q &queue, Generator generator, size_t n) {
  while (n-- > 0)
    queue.pushBack(generator());
}
 
int main(int argc, char *argv[]) {
  srand(time(0));
  Queue<Point> queue;
  generate_n(queue, Point::random, 3);
  std::cout << "All points: " << queue << std::endl;
  std::cout << "Popping one-by-one:" << std::endl;
  while (!queue.isEmpty())
    std::cout << queue.popFront() << std::endl;
}

Не по теме:

Цитата Сообщение от Zerkyuseo Посмотреть сообщение
Информационное поле удаленного звена
Убило.

 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru