Форум программистов, компьютерный форум CyberForum.ru

Реализация функции erase() - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка R6010 http://www.cyberforum.ru/cpp-beginners/thread934685.html
Из-за чего возникает такая ошибка как на скрине ? Вот код программы: #include<iostream> #include<string> using namespace std ; class MyClassString { private:
C++ Книги по STL Доброго времени суток. Интересует ваше мнение, по какой книге лучше изучать STL? В списке литературы (да да, я его читал!) есть 3 книги. Из них лучшие отзывы о "C++. Стандартная библиотека", но... Эту книгу называют больше справочником, чем учебным пособием, а меня интересует именно учебник с примерами и задачами. Что порекомендуете? http://www.cyberforum.ru/cpp-beginners/thread934676.html
Литералы C++
Добрый день! Уже весь инет перерыл в поисках необходимости понятия значения литерал в С++. Будьте добры, обьясните пожалуйста ЧЕЛОВЕЧЕСКИМ языком, для чего нужен литерал и в каких случаях применяется? Единственное что я понял, это то, что это значение, которое не меняется программой.
C++ Объявление функции с необязательными параметрами
Как объявить функцию с необязательными параметрами? Например в этой функции сделать int z необязательным параметром void func_getcoord(int x, int y, int z) { }
C++ Нормально работает http://www.cyberforum.ru/cpp-beginners/thread934663.html
Это нормально если программа работает без доп библиотек. (MVS 2008) Для srand(time(0)); вроде надо же <time> #include "stdafx.h" #include <iostream> #include <conio.h> #include <locale> using namespace std;
C++ Cb++, Символьные и строковые данные в С++ для строк типа char: Вводят 3 строки: а, б, с. Заменить в строке с строку а на строку б подробнее

Показать сообщение отдельно
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
10.08.2013, 22:57     Реализация функции erase()
Если для контейнера подобному вектору (с одним концом), то примерно вот так (код из моей реализации):
C++
1
2
3
4
5
6
7
8
void erase(size_type pos, size_type n)
{
    //проверка на выход за границы
    //...
    std::move(first + pos + n, last, first + pos;)
    destroy(last - n, last);
    last -= n;
}
C++
1
2
3
4
5
        void destroy(pointer _first, pointer _last)
        {
            for (; _first != _last; ++_first)
                alloc.destroy(_first);
        }
Добавлено через 47 секунд
освободившееся место идет под резерв (у меня он начинается с last)
 
Текущее время: 06:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru