Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
ovner
7 / 7 / 5
Регистрация: 06.10.2012
Сообщений: 140
1

Двумерный вектор, ошибка

27.08.2013, 19:22. Просмотров 555. Ответов 4
Метки нет (Все метки)

Здраствуйте! Почему я так не могу определить размер двумерного вектора?
Подчеркивает красным 2 числа 9 и пишет ошибку Expected a type specifier.
C++
1
2
3
4
class А
{
private:
    vector < vector<int> > mas(9,9);
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2013, 19:22
Ответы с готовыми решениями:

Двумерный вектор
Хочу создать в классе Model вектор двумерный указателей на объекты класса Cell....

Запись в двумерный вектор
Есть файл input.txt со следующим содержимым: 0 1 0 0 0 1 0 1 1 0 0 1 0 0 0...

Двумерный вектор в классе
Qt, необходимо создать класс в который поместить двумерный вектор типа double,...

Двумерный массив через вектор
Задача состоит в том, что надо создать массив строк через вектор, т.е. я хочу...

Двумерный массив,вектор из суммы элементов
Пожалуйста помогите решить задачку,я в этом деле новичок... Сформулировать...

4
d1skort
20 / 20 / 8
Регистрация: 10.02.2013
Сообщений: 75
27.08.2013, 19:49 2
C++
1
vector<vector<T> > a(n, vector<T>(m));
0
Belfegor
27.08.2013, 19:50
  #3

Не по теме:

Цитата Сообщение от ovner Посмотреть сообщение
vector < vector<int> > mas(9,9);
хммм
думаю так двумерный, а может и ошибаюсь
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <vector>
using std::vector;
 
int main() {
    const int col = 3, row = 3;
    vector < vector<int >> v;
    v.resize(col, vector<int>(row));
    for (int i = 0; i < col; i++) {
        for (int j = 0; j < row; j++) {
            v[i][j] = i + j;
        }
    }
    for (int i = 0; i < col; i++) {
        for (int j = 0; j < row; j++) {
            std::cout << v[i][j] << ' ';
        }
        std::cout << '\n';
    }
    return 0;
}

0
ovner
7 / 7 / 5
Регистрация: 06.10.2012
Сообщений: 140
27.08.2013, 19:58  [ТС] 4
Но если я пишу такое в main то все работает нормально и нет ошибки.
C++
1
2
3
4
5
void main()
{
     vector < vector<int> > mas(9,9); 
     mas[1][5] = 0;
}
0
rangerx
1944 / 1553 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
27.08.2013, 20:34 5
1) Второй параметр конструктора должен имеет тип vector<int>(тип хранимых в векторе элементов), а не int
2) Так вызвать конструктор не получится, если вам нужна инициализация по умолчанию(работает начиная с C++11), то необходимо использовать фигурные скобки вместо круглых
C++
1
2
3
4
//...
private:
  vector < vector<int> > mas { 9, vector<int>(9) };
//...
в противном случае придётся использовать список инициализации
C++
1
2
3
4
5
6
7
8
9
10
//...
private:
  vector < vector<int> > mas;
 
public:
  A()
  : mas(9, vector<int>(9))
  {
  }
//...
Добавлено через 27 минут
Цитата Сообщение от ovner Посмотреть сообщение
Но если я пишу такое в main то все работает нормально и нет ошибки.
Это можно объяснить только неявным преобразованием 9 к vector<int>(9)(хотя по стандарту этот конструктор должен быть объявлен как explicit). Это ошибка в любом случае, так писать не следует.
2
27.08.2013, 20:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2013, 20:34

Двумерный вектор из разных типов - возможно?
Добрый вечер. ага, как вечер, так начинаются походы по сказочным лесам :D ...

ifstream (считать матрицу из файла в двумерный вектор)
нужно из файла считать матрицу в двумерный вектор. файл выглядит так: 2 9 6 5...

Как считать матрицу из файла в двумерный вектор
Доброго времени суток, начал писать шифр Скитала И столкнулся с такой...


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

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

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