Подождите, еще один пример на STL C++
Добавлено через 17 минут
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
| #include <stdio.h>
#include <stdlib.h>
#include <vector>
#include <iostream>
#include <algorithm>
const int n = 5, m = 10;
template<class T>
void swapptr(T*& p1, T*& p2)
{ T* _tp = p1; p1 = p2; p2 = _tp; }
typedef std::vector<std::vector<int>> matrix;
using namespace std;
int RandValue() { return rand() % 9 + 1; }
int main(int argc, char** argv)
{
static matrix A(n);
matrix::iterator row_iterator;
for (row_iterator = A.begin(); row_iterator != A.end(); row_iterator++)
{
row_iterator->resize(m, 0);
std::generate(row_iterator->begin(), row_iterator->end(), RandValue);
for (matrix::size_type index = 0; index < m; index++)
std::cout << row_iterator->at(index) << " ";
std::cout << endl;
}
std::cout << endl << endl;
for (row_iterator = A.begin(); row_iterator != A.end(); row_iterator++)
{
matrix::iterator max_iterator = row_iterator;
matrix::iterator sort_iterator = max_iterator;
while (sort_iterator != A.end())
{
if (sort_iterator->at(0) > max_iterator->at(0))
max_iterator = sort_iterator;
sort_iterator++;
}
std::iter_swap(row_iterator, max_iterator);
}
for (row_iterator = A.begin(); row_iterator != A.end(); row_iterator++)
{
for (matrix::size_type index = 0; index < m; index++)
std::cout << row_iterator->at(index) << " ";
std::cout << endl;
}
std::cout << endl;
std::cin.get();
return 0;
} |
|
Проще некуда.