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

Матрица. Построить логический вектор. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сортировка строк двумерного массива http://www.cyberforum.ru/cpp-beginners/thread566465.html
Здравствуйте! Помогите, помогите, пожалуйста, с такой проблемой: Как реализовать сортировку строк двумерного массива (int)? Конкретнее: У меня есть двумерный массив целых чисел - int A. Мне нужно отсортировать строки по не убыванию. Что значит отсортировать строки: если у меня есть массив
C++ тупой вопрос virtual методы есть вопрос! вот например class A { public: virtual int func(); }; class B:public A { http://www.cyberforum.ru/cpp-beginners/thread566457.html
C++ Рекуррентные соотношения
Задание во вложениях. нужно его сделать с помощью рекуррентного соотношения("Элемент последовательности вычисляется на основе предыдущих) т.е. Сk+1=Ck*d; и d у меня получается -x/((k+1)*(k+3)); вот код, но с расчетами он не совпадает(( помогите кто может.. #include "stdafx.h" #include <iostream> #include <cstdlib> #include <cstddef> #include <conio.h> using namespace std;
C++ разработка нерекурсивных функций
Разработать функцию, которая для заданного натурального числа N возвращает сумму его делителей. с помощью данной функции:вывести на экран только целые числа отрезка , у которых сумма делителей равна заданному числу.
C++ Тестовые вопросы по перегрузке операторов http://www.cyberforum.ru/cpp-beginners/thread566431.html
Нужно составить 10 тестовых вопросов по Перегрузке операторов (ООП) Кто чем может пли_з помог_ите.
C++ Получить имя владельца файла Обсуждение было здесь: http://www.cyberforum.ru/csharp-beginners/thread424439.html Подскажите, а как этот код переделать на с++ IdentityReference identityReference = fileSecurity.GetOwner(typeof(NTAccount)); нигде не могу найти. А студия говорит что NTAccount нелегально использовано. подробнее

Показать сообщение отдельно
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
06.05.2012, 01:36     Матрица. Построить логический вектор.
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
#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>
#include <numeric>
#include <cassert>
 
 
template<typename T>
std::vector<bool> f(std::vector<std::vector<T>> const& matrix) {
    std::vector<bool> result(matrix.size(), false);
    
    auto resultIt = std::begin(result);
    for (auto matrixIt = std::begin(matrix); matrixIt != std::end(matrix); ++matrixIt, ++resultIt) {
        for (auto rowBeginIt = std::begin(*matrixIt), rowEndIt = std::end(*matrixIt), rowIt = std::begin(*matrixIt);
                rowIt != rowEndIt;
                ++rowIt) {
            if (std::accumulate(rowBeginIt, rowIt, T()) == std::accumulate(std::next(rowIt), rowEndIt, T())) {
                *resultIt = true;
                break;
            }
        }
    }
    
    return result;
}
 
 
int main() {
    std::vector<std::vector<int>> matrix = {
        { 1,  2,  4,  3,  4,  3 },
        { 4,  5,  6, -9,  0,  0 },
        { 7,  8,  9, 10, -9, -8 },
        { 8,  0, -3,  3, 19, 22 },
        { 8, -9,  7, 13,-16,  5 },
        { 6, 13, -8, 66,-77,100 }
    };
    std::vector<bool> expected = {
        true,
        false,
        false,
        false,
        true,
        true
    };
    
    auto result = f(matrix);
    
    std::cout << std::boolalpha;
    std::copy(std::begin(result), std::end(result), std::ostream_iterator<bool>(std::cout, "\n"));
    
    assert(result == expected);
}
Добавлено через 20 минут
Если нет поддержки нового стандарта:
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
#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>
#include <numeric>
 
 
template<typename T>
std::vector<bool> f(std::vector<std::vector<T> > const& matrix) {
    typedef typename std::vector<std::vector<T> >::const_iterator  matrix_iterator;
    typedef typename std::vector<T>::const_iterator                row_iterator;
    typedef std::vector<bool>::iterator                            result_iterator;
    
    std::vector<bool> result(matrix.size(), false);
    
    result_iterator resultIt = result.begin();
    for (matrix_iterator matrixIt = matrix.begin(); matrixIt != matrix.end(); ++matrixIt, ++resultIt) {
        for (row_iterator rowBeginIt = matrixIt->begin(), rowEndIt = matrixIt->end(), rowIt = matrixIt->begin();
                rowIt != rowEndIt;
                ++rowIt) {
            if (std::accumulate(rowBeginIt, rowIt, T()) == std::accumulate(rowIt + 1, rowEndIt, T())) {
                *resultIt = true;
                break;
            }
        }
    }
    
    return result;
}
 
 
int main() {
    std::size_t n;
    std::cout << "n? ";
    std::cin >> n;
    std::vector<std::vector<int> > matrix(n, std::vector<int>(n));
    for (std::size_t i = 0; i != n; ++i) {
        for (std::size_t j = 0; j != n; ++j) {
            std::cout << "[" << i << "][" << j << "]? ";
            std::cin >> matrix[i][j];
        }
    }
        
    std::vector<bool> result = f(matrix);
    
    std::cout << std::boolalpha;
    std::copy(result.begin(), result.end(), std::ostream_iterator<bool>(std::cout, "\n"));
}
 
Текущее время: 18:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru