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

строки матрици - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти числа http://www.cyberforum.ru/cpp-beginners/thread53038.html
Найти два целых чила m и n, которые в приперемножение m*n не изменяют своего значение, если поменять местами их елементы (например, 38 и 83)
C++ 2-связный список на основе указателей next и pred Помогите найти ошибку в нахождении минимального элемента:#include "iostream" #include "conio.h" #include "stdlib.h" using namespace std; struct Item { int data; Item *pred, *next; } http://www.cyberforum.ru/cpp-beginners/thread52983.html
C++ 2-связный список на основе 2х стэков
Помогите создать 2-связный список на основе 2х стэков.
Поиск обратной матрицы методом Гаусса C++
#include<iostream> #include <stdio.h> #include <math.h> #include <stdlib.h> using namespace std; static int n; void obrat(double **a) {double **d,vrem,max,tryam; int i,j,*p,jmax,temp; d=new double *;//videlenie dlinnoi stroki
C++ linked error http://www.cyberforum.ru/cpp-beginners/thread52963.html
только начал программу писать и сразу траблы. Но по порядку. main.cpp: #include <iostream> #include "newfunc.h" using namespace std; int main() {
C++ Помогите пожалуйста со строками в C Необходимо решить задачку: Дана строка, содержащая последовательность слов, разделенных пробелами. Удалить из строки все слова, в которых есть заданная буква. Конечно же, это не сложное задание и были похожие примеры, но из-за того, что я новичок в программировании, не могу понять, как реализовать эту задачу. Помогите, кто может. подробнее

Показать сообщение отдельно
Rififi
2338 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
28.09.2009, 15:56     строки матрици
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
94
95
96
97
98
99
100
101
102
#include <vector>
#include <functional>
#include <algorithm>
#include <iostream>
 
template <typename T, const size_t Rows>
struct max_row : public std::unary_function<
    const T (&)[Rows],
    std::vector<std::pair<typename std::allocator<T>::const_pointer, size_t> > >
{
    typedef std::unary_function<
        const T (&)[Rows],
        std::vector<std::pair<typename std::allocator<T>::const_pointer, size_t> > > base_type;
    typedef typename base_type::argument_type argument_type;
    typedef typename base_type::result_type result_type;
    
    max_row() : index_(0) {}
    void operator()(argument_type v)
    {       
        res_.push_back(std::make_pair(std::min_element(&v[0], &v[0]+Rows), index_++));
    }
 
    operator result_type() const { return res_; }
    
    result_type res_;
    size_t index_;
};
 
template <typename T>
struct comparer : public std::binary_function<
    typename T::value_type, typename T::value_type, bool>
{
    typedef std::binary_function<
        typename T::value_type, typename T::value_type, bool> base_type;
    typedef typename base_type::first_argument_type first_argument_type;
    typedef typename base_type::second_argument_type second_argument_type;
    typedef typename base_type::result_type result_type;
    
    result_type operator()(const first_argument_type& v1, const second_argument_type& v2) const
    {
        return *v1.first < *v2.first;
    }
};
 
template <typename T, const size_t Cols, const size_t Rows>
void sort(T (&arr)[Cols][Rows])
{
    typedef max_row<T, Rows> pred_type;
    typedef typename pred_type::result_type result_type;
    result_type v = std::for_each(&arr[0], &arr[0]+Cols, pred_type());
    
    std::sort(v.begin(), v.end(), comparer<result_type>());
    T tmp[Cols][Rows];
    for(size_t i=0; i<v.size(); i++)
        std::copy(arr[v[i].second], arr[v[i].second]+Rows, tmp[i]);
    std::copy(&tmp[0][0], &tmp[0][0]+Cols*Rows, &arr[0][0]);
}
 
template <
    typename _E, typename _Tr, template <typename, typename> class O,
    typename T, const size_t Rows>
struct outer : public std::unary_function<const T (&)[Rows], void>
{
    typedef std::unary_function<const T (&)[Rows], void> base_type;
    typedef typename base_type::argument_type argument_type;
    typedef typename base_type::result_type result_type;
    
    outer(O<_E,_Tr>& os) : os_(os) {}
    result_type operator()(argument_type v) const
    {
        const _E sep[] = { _E(' '), 0 };
        std::ostream_iterator<T,_E,_Tr> oi(os_, sep); 
        std::copy(&v[0], &v[0]+Rows, oi);
        os_ << std::endl;
    }
    O<_E,_Tr>& os_;
};
 
template <
    typename _E, typename _Tr, template <typename, typename> class O,
    typename T, const size_t Cols, const size_t Rows>
O<_E,_Tr>& operator << (O<_E,_Tr>& os, T (&arr)[Cols][Rows])
{
    std::for_each(&arr[0], &arr[0]+Cols, outer<_E, _Tr, O, T, Rows>(os));
    return (os);
}
 
int main()
{
    int arr[][4] = {
            1, 23, 6, 17,
            3, 25, 6, 44,
            12, 20, 32, 2 };
 
    std::cout << arr << std::endl;
    
    sort(arr);
    
    std::cout << arr;
 
    return 0;
}
Вывод:
1 23 6 17
3 25 6 44
12 20 32 2

1 23 6 17
12 20 32 2
3 25 6 44
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru