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

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

Войти
Регистрация
Восстановить пароль
 
Sade
2 / 2 / 1
Регистрация: 20.03.2012
Сообщений: 42
#1

.erase() в массиве. - C++

18.04.2012, 23:53. Просмотров 716. Ответов 3
Метки нет (Все метки)

есть массив вектор например:
vector< pair<char,int> > k;
k[i].second мне надо его удалить как воспользоваться функции k.erase() ; ?????
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2012, 23:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос .erase() в массиве. (C++):

vector.erase - C++
Помогите пожалуйста с синтаксисом удаления любого элемента из вектора Вот тут ошибка: #include &lt;vector.h&gt; void main() { ...

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

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

list не работает erase - C++
void in_out_Park(list&lt;Bus&gt; &amp;in, list&lt;Bus&gt; &amp;out) { int n, i=0; Bus temp; cout&lt;&lt;&quot;Введите номер автобуса: &quot;; cin&gt;&gt;n; ...

Реализация функции erase() - C++
Как работает erase()? То есть, если у нас : prev, it, next - итераторы и выполняя erase(it), она очистит память, которую занимала it и...

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

3
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
19.04.2012, 00:32 #2
Цитата Сообщение от Sade Посмотреть сообщение
k[i].second мне надо его удалить как воспользоваться функции k.erase() ; ?????
erase к pair вообще никакого отношения не имеет.
0
Avazart
Нарушитель
Эксперт С++
7232 / 5404 / 293
Регистрация: 10.12.2010
Сообщений: 23,951
Записей в блоге: 17
19.04.2012, 01:15 #3
C++
1
k.erase(итератор на элемент вектора!)
именно вектора а не pair, pair не является контейнером чтоб у него можно было удалять что -либо
0
NightmareZ
1360 / 568 / 37
Регистрация: 31.03.2009
Сообщений: 1,937
19.04.2012, 01:34 #4
Цитата Сообщение от Sade Посмотреть сообщение
есть массив вектор например:
vector< pair<char,int> > k;
k[i].second мне надо его удалить как воспользоваться функции k.erase() ; ?????
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <vector>
#include <utility>
#include <algorithm>
 
typedef std::pair<char, int> mypair;
typedef std::vector<mypair> myvec;
 
int main()
{
    std::vector<mypair> vec;
    vec.push_back(mypair('a', 1));
    vec.push_back(mypair('b', 2));
    vec.push_back(mypair('c', 3));
 
    // output:
    // a 1
    // b 2
    // c 3
    for (myvec::iterator it = vec.begin(); it != vec.end(); ++it)
        std::cout << it->first << " " << it->second << std::endl;
    std::cout << std::endl;
 
    const int target = 2;
    myvec::const_iterator it =
        std::find_if(vec.begin(), vec.end(), [&target](mypair pair) { return pair.second == target; });
    if (it != vec.end())
        vec.erase(it);
 
    // output:
    // a 1
    // c 3
    for (myvec::iterator it = vec.begin(); it != vec.end(); ++it)
        std::cout << it->first << " " << it->second << std::endl;
    std::cout << std::endl;
    return 0;
}
1
19.04.2012, 01:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2012, 01:34
Привет! Вот еще темы с ответами:

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

stl::list erase() - C++
вот такой код есть, но не работает. как подправить? list&lt;int&gt; ls; list&lt;int&gt;::iterator it; for(int i=0; i&lt;5; i++) { ...

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

Не хочет работать erase с remove_if - C++
Здравствуйте, у меня есть такой код: ships.erase(std::remove_if(ships.begin(), ships.end(), (Ship &amp; ship) { ship.isDead(); }),...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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