![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
C/L |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 31.7.2004 Где: Самара Репутация: нет Всего: 1 |
||||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
это встроенные типы данных. а не определённые пользователем. например int, long, double, long*, ... значит не подходит. т.к. конструктор занимает дополнительное место и memset "фурычить" не будет ![]() |
|||
|
||||
C/L |
|
||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 31.7.2004 Где: Самара Репутация: нет Всего: 1 |
вот vector на самом деле принимает 2 параметра, первый - тип элементов. А второй зачем?
|
||||||||
|
|||||||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
C/L второй алокатор, если хочешь написать свое реаспределение памяти
|
|||
|
||||
C/L |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 31.7.2004 Где: Самара Репутация: нет Всего: 1 |
правда ![]() Добавлено через 2 минуты и 11 секунд
А с его помощью можно построить вектор где угодно? Пробывал искать по этой теме, пока ничего не нашел. |
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Лучше почитать описание POD - там нет упоминаний об обычном конструкторе (только конструктор копирования). Кстати, рекомендую почитать что-нибудь про классы, так как на лицо непонимание внутренней организации объектов. |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
чего чего?? сколько места занимает конструктор в памяти? Добавлено @ 11:16 C/L если в классе нет динамически инициализируемых обьектов, или обьекта, который динамически инициализирует переменные - спокойно можно использовать.. Это сообщение отредактировал(а) azesmcar - 1.4.2009, 11:17 |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Можно "где-угодно", но не "из-чего угодно". Т.е. аллокатор будет использоваться вместо оператора new. Думаю, тебе не это нужно. Тебе написали уже все возможные варианты. Ну есть еще вариант без копирования - возвращать константный указатель на первый элемент вектора. Но для этого придется менять функцию, так как в нынешнем виде она подразумевает только копирование. |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
можно например написать алокатор который будет напрямую создавать твои обьекты в твоем void* буфере с помощью placement new. Но я не уверен что тебе это нужно..
|
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
так я о том же ![]() |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
bsa
![]() я немного детализировал ![]() |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
bsa, azesmcar
по почкам просьба больно не бить, понял свою тупость про POD типы ![]() |
|||
|
||||
C/L |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 31.7.2004 Где: Самара Репутация: нет Всего: 1 |
А что в этом особенного? Аллокаторы я еще не писал ![]()
Об этом я еще не думал, надо попробывать. Всем спасибо, тему можно считать закрытой. Это сообщение отредактировал(а) C/L - 1.4.2009, 12:55 |
||||
|
|||||
bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Только имей в виду, что этот указатель будет жить до тех пор, пока вектор жив и к нему не применяются методы, изменяющие размер в сторону увеличения (insert, push_back, resize, reserve, например, но есть исключения - читать документацию, в части об инвалидации итераторов). |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |