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

Переставить в обратном порядке элементы матрицы, расположенные между последним и минимальным - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Встроенные функции http://www.cyberforum.ru/cpp-beginners/thread363468.html
Привет! Только недавно изучаю C++!Может кто-нибудь объяснить,пожалуйста,ценность встроенных функций и как вообще происходит компиляция программы при их использовании?Выигрыш от их использования,как я понимаю,в их эффективности!А чем они отличаются от обычных и как происходит их вызов?
C++ Преобразовать string в c-style строку как string на си++ преобразовать в строку старого стиля (си). Нужно для того, чтобы преобразовать символ в число с помощью atoi(). http://www.cyberforum.ru/cpp-beginners/thread363457.html
C++ Одномерный массив!
Здравствуйте. Не могли бы мне помочь, нужно написать вот такую вот нехитрую программу (просто я пока в этом слаб), если можно, с комментариями. Вот условие: В одномерном массиве, состоящем из п вещественных элементов, вычислить: 1) количество элементов массива, больших С; 2) произведение элементов массива, расположенных после максимального по модулю элемента. Преобразовать массив таким...
C++ модуль от double?
дано три целых числа (integer). найти а. это ошибка в самом условии, или есть функция, находящая модуль дробного числа? abs не помогает
C++ Подсчет количества слов http://www.cyberforum.ru/cpp-beginners/thread363445.html
Допустим, дана строка: "129 s23 ertr 234 0 e" Как подсчитать количество слов, состоящих только из латинских букв?
C++ Сортировка Всем привет. Поделитесь кодом сортировки квадратичной виборки, если у кого есть, а то в инете реально нет, такое чувство будто она не существует. Спасибо. подробнее

Показать сообщение отдельно
lemegeton
2917 / 1346 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
09.10.2011, 22:13     Переставить в обратном порядке элементы матрицы, расположенные между последним и минимальным
... и еще менее понятный, но правильный вариант.
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
#include <iostream>
#include <iomanip>
#include <vector>
#include <algorithm>
#include <iterator>
#include <ctime>
 
class RandomInteger {
 public:
  RandomInteger(int min, int max) : min_(min), max_(max) {}
  int operator()() {
    return std::rand() % (max_ - min_ + 1) + min_;
  }
 private:
  int min_;
  int max_;
};
 
class RandomVector {
 public:
  RandomVector(size_t size, size_t min, size_t max)
    : size_(size), min_(min), max_(max) {}
  std::vector<int> operator()() {
    std::vector<int> result(size_);
    std::generate(result.begin(), result.end(), RandomInteger(min_, max_));
    return result;
  }
 private:
  size_t size_;
  size_t min_;
  size_t max_;
};
 
std::ostream &operator<<(std::ostream &stream,
  const std::vector<int> &vector) {
  for (std::vector<int>::const_iterator i = vector.begin();
    i != vector.end(); ++i)
    stream << std::setw(3) << *i << " ";
  return stream;
}
 
std::ostream &operator<<(std::ostream &stream,
  const std::vector< std::vector<int> > &matrix) {
  for (std::vector< std::vector<int> >::const_iterator i = matrix.begin();
    i != matrix.end(); ++i)
    stream << *i << std::endl;
  return stream;
}
 
int main(int argc, char *argv[]) {
  std::srand(std::time(NULL));
  size_t rows = 5 + rand() % 5;
  size_t cols = 5 + rand() % 5;
 
  std::vector< std::vector<int> > matrix(rows);
 
  std::generate(matrix.begin(), matrix.end(), RandomVector(cols, 0, 5));
  std::cout << matrix << std::endl;
 
  for (std::vector< std::vector<int> >::iterator row = matrix.begin();
    row != matrix.end(); ++row) {
    std::vector<int>::iterator 
      first = std::min_element((*row).begin(), (*row).end()),
      last = (*row).end() - 1;
    while (first < last)
      std::swap(*first++, *last--);
  }
 
  std::cout << matrix << std::endl;
  return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru