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

Использование вектора для работы с матрицей - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Граф задается своей матрицей смежностей вывести на экране окружения каждой его вершины http://www.cyberforum.ru/cpp-beginners/thread260381.html
Привет, ребят! Прошу Очень помочь! Граф задается своей матрицей смежностей. Вывести на экране окружения каждой его вершины. Прога есть, помоги пжлст составить Блок-схему. Буду оочень благодарен! #include <iostream> #include <conio.h>
C++ 3 программы на понимание Найти сумму двух матриц А(N,M) и В(N,M) Найти произведение двух матриц А(N,M) и В(M,K) Найти произведение матрицы А(N,M) на вектор В(N) Я думаю для вас Это Элементарно))) http://www.cyberforum.ru/cpp-beginners/thread260375.html
Путь до файла C++
Здравствуйте, скажите как получить путь до файла зная только его имя и расширение. Достойных примеров не нашел хоть и убил на это весь день.Заранее спасибо.
Random в массиве C++
#include <stdio.h> #include <math.h> #include <time.h> #include <stdlib.h> #define N 10 double foo(int arr) { double pro = 1; int i; for(i = 0; i < N; ++i)
C++ Наследование http://www.cyberforum.ru/cpp-beginners/thread260352.html
Прошу помочь реализовть программу. Задание на русском: Разработать класс CFile,который инкапсулирует в себя такие функции работы с файлами как Open, Close, Seek, Read, Write, GetPosition и GetLength. На базе этого класса создать производный класс CMyDataFile - файл ,который содержит данные некоторого определенного типа MyData,а такде заголовок, который облегчает доступ к этому файлу. ...
C++ Вычислить сумму ряда Вычислить сумму \sum_{x-1}^{10}{a}_{n} {a}_{n}=n!/2n. Да и еще почему когка компелируешь задачи окно вывода появляется на долисекунды и исчезает? И как это исправить и сделать вывод? подробнее

Показать сообщение отдельно
Ma3a
Эксперт C++
612 / 456 / 31
Регистрация: 28.01.2011
Сообщений: 605
20.03.2011, 16:24     Использование вектора для работы с матрицей
Как я понял, нужно создать матрицу, состоящую из выделенных столбцов, особо разбираться в чужом коде не хочется, так что я приведу свой пример. Здесь собственно создается вектор, в котором хранятся индексы нужных столбцов, потом создается матрица, содержащая нужные нам столбцы исходной.

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
#include <iostream>
#include <vector>
 
typedef std::vector<int> vec_t;
typedef std::vector< vec_t > matr_t;
 
void OutPosCols(matr_t & matrix, vec_t & columns)
    {
    bool is_pos_col;
    unsigned rows = matrix.size();
    unsigned cols = matrix.begin()->size();
 
    for(int i = 0; i < cols; ++i)
        {
        is_pos_col = true;
        for(int j = 0; j < rows; ++j)
            if(matrix[j][i] <= 0)
                is_pos_col = false;
 
        if(is_pos_col == true)
            {
            columns.push_back(i);
            }
        }
    }
 
int main()
    {
    // вводим количество строк и столбцов
    unsigned rows, cols;
    std::cin >> rows >> cols;
    // создаем матрицу нужных размеров
    matr_t matrix(rows,vec_t(cols));
    // вводим каждую ячейку матрицы
    for(int i = 0; i < rows; ++i)
        for(int j = 0; j < cols; ++j)
            std::cin >> matrix[i][j];
    // вектор номеров "хороших" столбцов
    vec_t columns;
    // заполняем этот вектор
    OutPosCols(matrix,columns);
 
    // делаем матрицу с выделенными столбцами исходной
    matr_t newmatrix(rows);
 
    for(int i = 0; i < rows; ++i)
        {
        for(vec_t::iterator j = columns.begin(); j != columns.end(); ++j)
            newmatrix[i].push_back(matrix[i][*j]);
        }
    // выводим полученную матрицу
    for(int i = 0; i < newmatrix.size(); ++i)
        {
        std::cout << std::endl;
        for(int j = 0; j < newmatrix[i].size(); ++j)
            std::cout << newmatrix[i][j] << " ";
        }
    std::cout << std::endl;
    return 0;
    }
 
Текущее время: 17:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru