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

Удаление из вектора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ непонятно что не правильно http://www.cyberforum.ru/cpp-beginners/thread433083.html
#include <conio.h> #include <math.h> #include <stdio.h> #include <iostream.h> void main() ...
C++ Поиск популярных сайтов Формат входного файла В первой строке входного файла input.txt находится набор тегов, разделённых ровно одним пробелом, количество тегов не превосходит 5. Тегом назовём такую строку, которая содержит только строчные латинские буквы и ее длина не превосходит 10 символов. В следующей строке дано число N (1 ≤ N ≤ 20)— количество сайтов. Каждый сайт описывается тремя строками. В первой строке... http://www.cyberforum.ru/cpp-beginners/thread433081.html
C++ Вычисление выражений
Помогите решить, задания на языке C 1. Создать программу для вычисления выражения. 2. Найдите площадь параллелограмма по диагоналям и углу между ними. Добавлено через 14 минут Для первого задания, x1 = 2 x2=4 Прикрепляйте картинки к сообщениям.
№ задачи на С++ C++
1.Введите с клавиатуры массив из 10 целых чисел и выведите его используя указатель и имя массива/индекс, располагая каждый элемент через табуляцию. 2.Введите с клавиатуры 10 чисел с плавающей точкой. Присвоить указателям соответственно адрес 2-го элемента и адрес 7-го элемента, вывести разницу этих указателей на экран. 3.Написать программу, которая вводит с клавиатуры массив чисел с плавающей...
C++ проверьте на ошибки http://www.cyberforum.ru/cpp-beginners/thread433053.html
#include <iostream> #include <iomanip> #include <conio.h> #include <fstream> using namespace std; int main(){ char z; do {
C++ Где скачать Где скачать нормальную C/C++ под Windows 7 32bit??? Киньте ссылку плиз, очень надо, желательно торрент... подробнее

Показать сообщение отдельно
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.01.2012, 19:23     Удаление из вектора
Цитата Сообщение от xam max Посмотреть сообщение
1)В программе используется вектор которых хранит объекты некоторого класса, можно ли удалить из его середины(любого произвольного места) ячейку с объектом без использования итераторов ?
2)Если пункт 1 невозможен, то объясните пожалуйста как объявить этот самый итератор?
C++
1
2
3
4
v.erase(v.begin() + 5);//На самом деле это и есть итератор. Так что совсем "без итератора" не получится
//or with iterator
std::vector<T>::iterator it = v.begin() + 5;//or some other
v.erase(it);
Добавлено через 26 минут
C++
1
2
3
4
5
6
7
8
erase(iterator __position)
{
    if (__position + 1 != end())
        _GLIBCXX_MOVE3(__position + 1, end(), __position);
    --this->_M_impl._M_finish;
    _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish);
    return __position;
}
Как видим, все элементы сдвигаются, и освобождается память из под последнего элемента. Скорее всего.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru