Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.220.154.41] |
|
Сообщ.
#1
,
|
|
|
Добрый день!
Мне необходимо хранить двумерный массив, а какой контейнер выбрать я не представляю. То есть чтобы было что то типа vector2<int,int> Array2; Array2[i][j] = .... И тому подобное... |
Сообщ.
#2
,
|
|
|
std::vector<std::vector<int> >
|
Сообщ.
#3
,
|
|
|
Я тоже обычно для этой цели использую вектор векторов, но Страуструп предлагает использовать комбинацию std::valarray и std::slice.
|
Сообщ.
#4
,
|
|
|
Как вариант...
|
Сообщ.
#5
,
|
|||
|
можно пример... Также попрошу примерчик использования vector<vector<int>>. Огромное спасибо. |
Сообщ.
#6
,
|
|
|
так же как простой вектор. только путь будет чуть дольше
vector <vectror <int>> a; a.at(i).at(j); |
Сообщ.
#7
,
|
|||
|
можно ли будет делать так int k = a[i][j]??? |
Сообщ.
#8
,
|
|
|
точно не скажу, лучше попробуй. главное - не перепутать порядок следования (выход за границы и все такое)
Дело в том, что при использовании обычных дин. массивов при выходе за границы мгновенно можно получить от Винды по шапке. В STL есть еще немножко зарезервированного места после последнего элемента (а иногда и множко), так что по шапке не получишь, а правильно работать не будет. а вообще то [] и at() практически идентичны, так что существенного рояля не играет. можно писать и так: v.at(i) = 100; и так: v[100] = 100; |
Сообщ.
#9
,
|
|||||
|
|