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

Вектор вектора - C++

Восстановить пароль Регистрация
 
Минор
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 22
03.03.2013, 20:43     Вектор вектора #1
Доброго времени суток формучане!
Очень надеюсь на вашу помощь. Вопрос вроде простой, но у меня в синтаксисе векторов дела плохи.
В общем есть код.
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
#include <iostream>
#include <vector>
 
using namespace std;
vector <vector <int> > g;
int main()
{
    int n,k,i,j;
    cin>>n>>k;
    int a[n+5][k+5];
    bool x[k+5];
    for (i=1;i<=k;i++)
        for (j=1;j<=n;j++)
            cin>>a[i][j];
    for (int j=1;j<=n;j++)
        {
            for (i=1;i<=k;i++)
            x[i]=true;
            for (i=1;i<=k;i++)
                if (x[a[i][j]]==true)
                x[a[i][j]]=false;
            for (i=1;i<=k;i++)
                if (x[i]==true)
                //тут надо в j строку вектора добавить элемент i , и даже если ничего нету надо чтобы в j строке вектора ничего не стояло . (задача на графы)
        };
    return 0;
}
Вектор должен быть обьявлен именно глобально, тоесть заранее его размер совсем неизвестен.
Заранее большое вам спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2013, 20:43     Вектор вектора
Посмотрите здесь:

Заданный вектор А, состоящий из n элементов. Переставить компоненты вектора, размещенные после самого элемента вектора А C++
C++ Как разбить вектор на части(то есть вектора того же типа)
Вектор. Поменять местами первый и максимальный элементы вектора C++
Произведение вектора на матрицу и матрицы на вектор C++
Копирование части вектора в другой вектор по условию, функцией copy_if C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
icpu
 Аватар для icpu
276 / 181 / 36
Регистрация: 10.03.2011
Сообщений: 863
Записей в блоге: 2
03.03.2013, 20:54     Вектор вектора #2
итак, число векторов в векторе выясняется в начале программ, тогда
C++
1
2
3
4
5
6
vector <vector <int> > g;
int main()
{
    int n,k,i,j;
    cin>>n>>k;
    g.assign( n+5, vector <int> (k+5,0) );
далее в вашем коде меняется лишь имя матрицы.

И ещё, юный(ая) Минор: все массивы в Си/Си++ начинаются с НУЛЯ ( 0 ) <- это ноль. Если Вы будете считать с 1, то вас настигнет ( 0 ) <- это жопа
Минор
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 22
03.03.2013, 21:08  [ТС]     Вектор вектора #3
Спасибо.
Знаю, что начинаются с 0 . тут мне удобнее с 1.
можете пояснить что делает вот это выражение
g.assign( n+5, vector <int> (k+5,0) );
определяет максимальное, минимальное количество элементов в столбце?
icpu
 Аватар для icpu
276 / 181 / 36
Регистрация: 10.03.2011
Сообщений: 863
Записей в блоге: 2
03.03.2013, 21:16     Вектор вектора #4
g - вектор
assign(n,m) - создать вектор из n элементов с начальным значением m. Именно создать, не выделить память и тп.
vector < int > - объявление типа
vector < int > (n,m) - конструктор, действие которого полностью совпадает с assign(n,m)
>>> Подробнее на английском <<<
Yandex
Объявления
03.03.2013, 21:16     Вектор вектора
Ответ Создать тему
Опции темы

Текущее время: 15:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru