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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 66, средняя оценка - 4.92
Choopa
17 / 17 / 0
Регистрация: 03.04.2011
Сообщений: 89
#1

vector.erase - C++

05.05.2011, 06:33. Просмотров 9301. Ответов 2
Метки нет (Все метки)

Помогите пожалуйста с синтаксисом удаления любого элемента из вектора
Вот тут ошибка:
C++
1
2
3
4
5
6
7
8
9
10
#include <vector.h>
void main()
{
    vector<int>a;
    a.push_back(10);
    a.push_back(20);
    vector<int>::iterator pos;
    *pos=a[0];
    a.erase(pos);
}
 Комментарий модератора 
Используйте теги форматирования кода!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2011, 06:33     vector.erase
Посмотрите здесь:

vector::erase()? - C++
есть вектор структур struct person{ string name; int age; vector &lt;person&gt; repw;

std::vector::erase - C++
Всем привет. Буду очень рад, если кто-нибудь может мне объяснить логику... см. скриншот....

Крах при vector.erase() - C++
Всё вроде бы работает так, как мне надо...но когда остаётся 1 элемент и его нужно очистить, программа крашится. Что я сделал не так? ...

Функция Erase класса vector - C++
Нужно удалить из вектора, в котором объекты авторского класса, объекты с весом более 300. Написал цикл, но при запуске пишет Iterators...

Ошибка в функции erase для vector - C++
cout &lt;&lt; &quot;How much numbers? : &quot;; int n; cin &gt;&gt; n; vector&lt;int&gt;array(n); for (int i = 0; i &lt; n; i++) { cin &gt;&gt; array; ...

Vector <bool> erase iterator outside range - C++
Помогите, пожалуйста. При компиляции появляется ошибка (фото ниже). Это реализация алгоритма Хаффмана. Не могу понять, что не так, по...

Ошибка при использовании erase для std::vector - C++
Почему в случае удаления элемента из вектора с помощью передачи итератора в erase, который соответствует позиции удаляемого элемента...

Ошибка “vector<bool> erase iterator outside range” при работе алгоритма Хаффмана - C++
Проблема с функцией BuildTable. Компилируется, но в процессе работы возникает ошибка. // Huffmann.cpp: определяет точку входа для...

Erase map - C++
Добрый день, мне необходимо удалить из MAP некоторое количество элементов, сейчас я делаю это вот так, но как то не очень красиво for (i...

.erase() в массиве. - C++
есть массив вектор например: vector&lt; pair&lt;char,int&gt; &gt; k; k.second мне надо его удалить как воспользоваться функции k.erase() ;...

Шаблоны: insert, erase - C++
У меня проблема, как именно нужно описать main и проблема с функцией insert, мне сказали, что в ней может не быть места, чтобы вставить...

вектор алгоритм erase - C++
Доброго всем времени суток.Пожалуйста подскажите чайнику.Пытаюсь из контейнера убрать лишние данные с помощью erase ,но ничего не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
05.05.2011, 06:55     vector.erase #2
C++
1
2
3
4
5
6
7
8
9
10
#include <vector>
void main()
{
    std::vector<int>a;
    a.push_back(10);
    a.push_back(20);
    std::vector<int>::iterator pos = a.begin();
    //*pos=a[0];
    a.erase(pos);
}
ValeryLaptev
Эксперт С++
1039 / 818 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
05.05.2011, 08:47     vector.erase #3
C++
1
2
3
4
5
6
7
8
9
10
#include <vector.h>                              
void main()
{
vector<int>a;
a.push_back(10);
a.push_back(20);
vector<int>::iterator pos;
*pos=a[0];
a.erase(pos);
}
1. <vector> - без .h
2. std::vector или написать после инклуда using namespace std;
3. int main()

Для удаления любого элемента вектора, например a[i], можно делать так:
C++
1
2
vector<int>::iterator pos = a.begin() + i;
a.erase(pos);
Если порядок элементов вектора не важен, то все можно делать ГОРАЗДО быстрее:
C++
1
2
swap(a[i], a.back());
a.pop_back();
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru