![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
d2e8k |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 20.9.2005 Репутация: нет Всего: нет |
Здравствуйте!
Можно ли создать вектор массивов в С++? Не могу понять что не так:
На это получаю ошибку: /usr/include/g++/stl_vector.h: In method `void vector<int[2],allocator<int[2]> >::_M_insert_aux(int (*)[2], const int (&)[2])': /usr/include/g++/stl_vector.h:325: instantiated from here /usr/include/g++/stl_vector.h:593: invalid initializer Заранее благодарен. |
|||
|
||||
xTr1m |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 692 Регистрация: 9.2.2005 Где: Москва Репутация: 1 Всего: 1 |
по-моему ето не определено в STL, дл9 етого исползуй bloob
но могу ошибатьс9 |
|||
|
||||
Sceptik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 29.8.2006 Где: Екатеринбург Репутация: нет Всего: нет |
d2e8k, инкапуслируй массив..
и вообще обрисуй картину, зачем тебе это надо. Тогда получишь конкретнуюю помощь. Это сообщение отредактировал(а) Sceptik - 6.9.2006, 17:50 |
|||
|
||||
Damarus |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 671 Регистрация: 6.5.2006 Репутация: 6 Всего: 29 |
Так нельзя. Кроме того, здесь: выход за пределы массива. Вариант:
Это сообщение отредактировал(а) Damarus - 6.9.2006, 17:53 |
|||
|
||||
Sceptik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 29.8.2006 Где: Екатеринбург Репутация: нет Всего: нет |
Damarus,
Ктруто).. и ты подарил ему массив с дополнительной информацией).. sizeof(std::vector<>) == 16 байт. |
|||
|
||||
Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
Sceptik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 29.8.2006 Где: Екатеринбург Репутация: нет Всего: нет |
||||
|
||||
Remiznik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 379 Регистрация: 30.4.2005 Репутация: нет Всего: 1 |
а может ктонибуть обьяснит чем вектор масив отличаеться от простого масива ?
|
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Вектор - это динамический массив. т.е. фактически он хранит указатель на начало блока данных, на конец и на конец выделенной памяти (что-то забыл?). В процессе работы количество элементов может меняться, как в сторону увеличения, так и в сторону уменьшения.
Обычный массив (например, int a[2]) - это просто две ячейки памяти выделенные под данные (в данном случае две ячейки типа int). В процессе работы программы количество ячеек меняться не может, как и их месторасположение в ОЗУ. Вектор массивов - это, имхо, извращение. Особенно, когда массив - два числа. В данном случае логично использовать именно структуру вместо массива. А когда элементов массива будет много, то можно использовать вектор векторов - проигрыш в объеме занимаемой памяти незначительный, а скорость повыше... Это сообщение отредактировал(а) bsa - 6.9.2006, 23:28 |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 3 Всего: 106 |
вот пример двумерного динамически-линейного массива без использования стл:
размерность [1][3] условная, ключевой момент при распределении памяти. [5][3] - реальная размерность массива. Точно так же без проблем можно создать и n-мерный, но плавающей всегда останется первая граница. Это сообщение отредактировал(а) GremlinProg - 7.9.2006, 01:25 -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |