Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
NikBond
2 / 2 / 2
Регистрация: 21.07.2015
Сообщений: 36
#1

Вектор векторов инициализация - C++

12.11.2015, 01:33. Просмотров 573. Ответов 6
Метки нет (Все метки)

Вопрос по поводу работы с двумерными векторами("матрицами").
Например, необходимо создать матрицу 10х10 и инициализировать её 1-чками.

Для одномерного массива это
C++
1
vector <int> myVect(10, 1);
А для двумерного?
C++
1
 vector <vector <int> > myVect(10, vector <int> (10, 1) );
Выглядит громоздко и, судя по всему, неверно. Подскажите, как надо.
http://www.cyberforum.ru/cpp-beginners/thread868764.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2015, 01:33
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вектор векторов инициализация (C++):

Инициализация элементов вектор
В программе создается вектор и первому элементу вектора присваивается объект...

Вектор векторов
Вектор векторов - плюсы и минусы, альтернативы. Подскажите новичку) P.S....

Вектор векторов
Хочу создать вектор, содержащий векторы, которые содержат строки. Написал такой...

Вектор векторов
Нужно научиться создавать вектор в векторе, нашёл такой сайт но остались...

вектор векторов - умножение
У меня есть: vector&lt;std::vector&lt;double&gt;&gt; a std::vector&lt;double&gt; b мне нужно...

6
rikimaru2013
C++ Game Dev
2471 / 1140 / 348
Регистрация: 30.11.2013
Сообщений: 3,709
12.11.2015, 01:53 #2
Я бы как-то так написал ...
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
#include <iostream>
#include <vector>
using namespace std;
 
int main()
{
    typedef std::vector<int> ArrayLine;
    typedef std::vector<ArrayLine> MyArray;
 
    MyArray myVect;
 
    const int size = 10;
    const int defaultValue = 1;
 
    myVect.reserve(size);
    for(int i = 0; i < size; ++i)
        myVect.emplace_back(ArrayLine(size, defaultValue)); 
 
    for(auto& outIt : myVect)
    {
        for(auto& inIt : outIt)
            cout << inIt << " ";
        cout << endl;
    }
 
}
1
Dimension
Dimension
573 / 442 / 221
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
12.11.2015, 02:07 #3
Цитата Сообщение от NikBond Посмотреть сообщение
Выглядит громоздко и, судя по всему, неверно. Подскажите, как надо.
у вас правильно
1
pproger
165 / 68 / 17
Регистрация: 22.03.2011
Сообщений: 196
12.11.2015, 02:10 #4
NikBond,
C++
1
2
3
4
5
6
7
8
9
10
11
    vector<vector<int>> v = {
        { 1, 2, 3, 4, 5 },
        { 6, 7, 8, 9, 0 },
    };
 
    for (auto i : v) {
        for (auto j : i) {
            cout << j << " ";
        }
        cout << endl;
    }
1
NikBond
2 / 2 / 2
Регистрация: 21.07.2015
Сообщений: 36
12.11.2015, 23:02  [ТС] #5
Спасибо всем.
Еще вопрос в догонку. Как обходить двумерные вектора в цикле без range-based for?

Вот здесь, к примеру, что писать в условии внутреннего цикла?

C++
1
2
3
4
 
for(int i; i < myVect.size(); i++){
    for(int j; j < /* что здесь? */; j++){
}
0
rikimaru2013
C++ Game Dev
2471 / 1140 / 348
Регистрация: 30.11.2013
Сообщений: 3,709
12.11.2015, 23:13 #6
Лучший ответ Сообщение было отмечено NikBond как решение

Решение

C++
1
myVect[i].size()
1
gru74ik
Модератор
Эксперт CЭксперт С++
4648 / 1962 / 293
Регистрация: 20.02.2013
Сообщений: 5,225
Записей в блоге: 23
13.11.2015, 10:42 #7
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
myVect[i].size()
И чтобы компилятор ворнинги не кидал, тип счётчиков лучше сделать size_t:
C++
1
2
3
4
5
for(size_t i; i < myVect.size(); i++)
    for(size_t j; j < myVect[i].size(); j++)
    {
        // some code
    }
0
13.11.2015, 10:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2015, 10:42
Привет! Вот еще темы с решениями:

Вектор векторов строк
День добрый! Вопрос такой: есть txt файл, его я считываю построчно, заношу...

Транспонировать вектор векторов
Есть кусочек кода, который генерирует вектор векторов matrix, как можно...

Вектор векторов - не компилируется код
Дорого времени суток. Я написала небольшую функцию, в которой объявляется...

Как обьявить вектор векторов?
Как обьявить вектор векторов? Так ругается vector&lt;vector&lt;int&gt;&gt; matrix = { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru