![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
GKosh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 27.12.2005 Репутация: нет Всего: нет |
Раньше как-то не приходилось использовать этот stl-класс.
Постоянно выдавает ошибки если перед добавлением элементов размер вектора не задавался явно - reserve(количество_чтобы_наверняка). Глупость какая-то, ведь по идее он должен делать это сам с каким-то предустановленным шагом. И сразу вопрос в догонку - если я создаю в VS.NET чистый Win32 проект без .NET'а возможно использовать в нем вектор? И если да, то будет ли он отличаться в ипользовании? (спрашиваю, поскольку на старой схеме но в новом проекте появился новый баг) Заранее спасибо, Константин. Это сообщение отредактировал(а) GKosh - 24.6.2006, 09:03 |
|||
|
||||
Daevaorn |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
reserve - на самом деле не увеличивает размер вектора. Он лишь говорит вектору, чтобы тот зрезервировал нужное количество пямяти под добавленные в последствии объекты.( v.reserve( N ) -> v.capacity() >= N -> v.size() != N ) resize - вот этот метод реально увеличивает размер вектора( v.resize( N ) -> v.size() == N )
При использовании push_back(), insert() и т.д. - размер вектора сам увеличивается
Стандартная библиотека не зависит от платформы. Вектор был и под ДОС. Конечно при условии, что компилятор под данную платформу. Следовательно нет. Разницы нет. |
||||||
|
|||||||
Fazil6 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
как добавляешь? если используя оператор [] то естественно будет ошибка. |
|||
|
||||
DeadSoul |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва Репутация: 2 Всего: 11 |
Ничем. Основный проблемы моут быть при использование stl при статической линковке рантайма. Если использовать push_back, то будутпроисходить перераспределения памяти. Пример:
Добавлено @ 10:33 Добавлю. Попробуй "добавлять" используя метод at. Ошибку получишь гарантировано. Использование operator[] просто скрывает ошибку, а отладочная версия stl появилась только в 8-ке Добавлено @ 10:34 И еще скачай книгу Джосьютиса. Там все разжевано(и книга просто потрясающая) -------------------- Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected] |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
в использовании отличаться не будет - в этом и прелесть стандартной библиотеки - она задает некоторые интерфейсы (не в прямом значении этого слова), которые неизменны, а сама реализация библиотеки на разных платформах может различаться -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
![]()
Как раз в прямом. Слово "интерфейс" использовалось в программировании еще до появления модели COM. -------------------- ... |
|||
|
||||
GKosh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 27.12.2005 Репутация: нет Всего: нет |
Большое всем спасибо! Все понятно - вопрос закрыт.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |