Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужна реализация функции std::vector::insert() - 
:(
    Опции темы
vvb2011
Дата 26.1.2016, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 26.1.2016

Репутация: нет
Всего: нет



Нужна реализация функции std::vector::insert()  - C++ 
Написал сам,  но  не правильно работает. если нужнен полностю код Вектора, могу  сюда скинуть

Код

 template <typename T, typename Allocator>
typename Vector<T, Allocator>::iterator Vector<T, Allocator>::insert(iterator position, const value_type& val)
{
    const size_type new_size = m_size + 1;
    if (new_size > m_capacity)
        grow(2 * m_capacity);
    copy_backward(begin(), end(), position);
    m_allocator.construct(&*position, val);
    ++m_size;
}
 template <typename InputIterator, typename OutputIterator>
    void copy_backward(InputIterator begin1, InputIterator end1, OutputIterator end2)
    {
        iterator it = end1;
        iterator itEnd = begin1;
        for (; it != itEnd; --it)
        {
            ++end2;
        }
    }

 void construct(pointer block, const_reference object)
    {
        ::new (block) T(object);
    }
 

end2 - указывает за последний элемент диапазона, куда ты записать результат
 begin1 - первый элемент, из диапазона что читаешь
 end1 - идет за последним элементом диапазона, читаешь
PM MAIL   Вверх
borisbn
Дата 9.2.2016, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



У Вас функция copy_backward на самом деле ничего не копирует. И зачем она принимает begin() ? Ей нужно только position и end().


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0384 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.