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

vector - C++

Восстановить пароль Регистрация
 
N++
0 / 0 / 0
Регистрация: 16.04.2009
Сообщений: 58
01.05.2012, 14:18     vector #1
Объявляю двумерный массив следующим образом: vector< vector <int> > m_Mas;
Как в таком случае нужно добавлять элементы и обращаться к ним?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2012, 14:18     vector
Посмотрите здесь:

C++ vector
vector C++ C++
C++ vector<vector <bool> >
vector C++
C++ vector < vector < pair<int,int> > > g
vector(выскакивает ошибка "vector iterators incompatible") C++
C++ vector<vector<double>> => 2 * vector<vector<double>>
C++ set_difference(vector<pair<int,int>>, vector<int>>
Vector C++
Поиск в vector < vector <T> > C++
Bind vector<vector<A*>> C++
C++ Vector в vector

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MegaMozg
 Аватар для MegaMozg
44 / 44 / 1
Регистрация: 19.12.2008
Сообщений: 110
01.05.2012, 14:26     vector #2
C++
1
2
m_Mas[m][n] = 7;
m_Mas[m].push_back(8);
N++
0 / 0 / 0
Регистрация: 16.04.2009
Сообщений: 58
01.05.2012, 14:31  [ТС]     vector #3
Цитата Сообщение от MegaMozg Посмотреть сообщение
C++
1
2
m_Mas[m][n] = 7;
m_Mas[m].push_back(8);
при выполнении segmentation fault выдает в данном случае
Gepar
 Аватар для Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
01.05.2012, 14:44     vector #4
N++, это кто вам сказал что вы массив объявили? Читайте по слогам "век-тор". Вектор векторов вы объявили вот и будьте добры пользоваться им как вектором векторов:
C++
1
2
3
    vector< vector <int> > m_Mas;
    m_Mas.push_back(vector<int>(2,1));//засунуть вектор содержащий две единички
    cout<<m_Mas[0][0];//обратиться к [0] элементу первого засунутуго вектора
Массив это array, а не vector.
N++
0 / 0 / 0
Регистрация: 16.04.2009
Сообщений: 58
01.05.2012, 14:49  [ТС]     vector #5
Спасибо)
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
01.05.2012, 14:58     vector #6
Если нужна просто плюсная обертка над матрицей, то можно просто написать так
C++
1
std::vector< std::vector< int > > m_Mas(n, std::vector< int > (m) );
И дальше работать с m_Mas, как если бы он был объявлен
C++
1
int m_Mas[n][m];
Ну и по надобности использовать различные методы, вроде size и at.
Ну и немного правильнее будет использовать typedef'ы.
Yandex
Объявления
01.05.2012, 14:58     vector
Ответ Создать тему
Опции темы

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