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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ovner
7 / 7 / 0
Регистрация: 06.10.2012
Сообщений: 140
#1

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

27.08.2013, 19:22. Просмотров 490. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Двумерный вектор, ошибка (C++):

Двумерный вектор - C++
Хочу создать в классе Model вектор двумерный указателей на объекты класса Cell. Как можно создать двумерный вектор? class Model { ...

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

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

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

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

Двумерный вектор. Взаимодействие с элементами вложенного уровня - C++
Добрый день. Ещё на НГ хотел игру сделать простенькую аркадную. Там экран делится на 41 столбец и ровно в рамках данных столбцов падают...

4
d1skort
20 / 20 / 0
Регистрация: 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 / 0
Регистрация: 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
1935 / 1544 / 141
Регистрация: 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
Привет! Вот еще темы с ответами:

ifstream (считать матрицу из файла в двумерный вектор) - C++
нужно из файла считать матрицу в двумерный вектор. файл выглядит так: 2 9 6 5 4 8 4 5 8 9 5 4 8 6 4 5 8 6 5 8 4 прошу помощи !

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

Как передать массив (двумерный/одномерный вектор) в функцию? - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; int n,m;//סענמך ט סעמכבצנג void searchmin(int g,int mm,int i,int...

Двумерный вектор: можно ли как-то перегрузить [] чтобы доступ был [0, 0] - C++
У меня есть двумерный вектор, можно как-то перегрузить чтобы доступ был ? А то сейчас сделал через прокси-класс , но все-таки хотелось бы...


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

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

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