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

vector.erase - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 66, средняя оценка - 4.92
Choopa
 Аватар для Choopa
17 / 17 / 0
Регистрация: 03.04.2011
Сообщений: 89
05.05.2011, 06:33     vector.erase #1
Помогите пожалуйста с синтаксисом удаления любого элемента из вектора
Вот тут ошибка:
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<Struct2{int,vector<struct1>}> или множественное наследование ... C++
C++ vector::erase()?
C++ Указатель на объект вектор в векторе vector < vector<int>* >*
std::vector::erase C++
C++ error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Vector<int>::Vector<int>(void)" (?0?$Vector@H@@QAE@XZ) в функции _main
Функция Erase класса vector C++
Как корректно скопировать vector в vector внутри класса C++
Как можно увеличить размер вектора, который является элементом вектора vector<vector<int>>arr(n, vector <int>) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
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();
Yandex
Объявления
05.05.2011, 08:47     vector.erase
Ответ Создать тему
Опции темы

Текущее время: 17:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru