Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 12.09.2011
Сообщений: 17

Удаление парных и не парных елементов в контейнере

17.11.2011, 11:53. Показов 2139. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача на удаление функцией erase() парных и не парных елементов из контейнеров. После компиляции программа на запуске выдает крит expression"this->_Has_container",0). Нюхом чую где-то 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
38
39
40
41
42
43
44
45
#include "stdafx.h"
#include <iostream>
#include <sstream>
#include<conio.h>
#include<string>
#include<vector>
#include<list>
#include<Algorithm>
using std::vector;
using std::cout;
using std::cin;
using std::endl;
using std::string;
using std::list;
 
int _tmain(int argc, _TCHAR* argv[])
{ int  w, ia[]={0,1,1,2,3,5,8,13,21,55,89};
vector<int> va(ia,ia+11);
list<int> la(ia,ia+11);
for(vector<int>::iterator d=va.begin(); d!=va.end(); ++d)
    {cout << *d << " ";}
cout << endl;
 
for(list<int>::iterator d=la.begin(); d!=la.end(); ++d)
    {cout << *d << " ";}
cout << endl;
 
/*for(vector<int>::iterator d=va.begin(); d<va.end(); ++d)
{if((*d)%2){}
else{va.erase(d);}
}
 
for(list<int>::iterator d=la.begin(); d!=la.end(); ++d)
{if((*d)%2){la.erase(d);}} */
for(vector<int>::iterator d=va.begin(); d!=va.end(); ++d)
{cout << *d << " ";}
cout << endl;
for(list<int>::iterator d=la.begin(); d!=la.end(); ++d)
{cout << *d << " ";}
cout << endl;
 
w=_getch();
 
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.11.2011, 11:53
Ответы с готовыми решениями:

Подсчитать количество парных и не парных элементов в матрице
Дано матрицу 10*10, подсчитать количество парных и не парных элементов

Сумму и произведение парных и не парных чисел
Не выводит числа Булин, как можно код подправить? Var a:array of integer; n,i,kmin,kmax,s,p,se,pe,so,po:integer; begin ...

Удаление парных элементов в списке
Есть список Нужно чтобы парные элементы удалались, а тройные нет. И ещё есть список Нужно чтобы внутренние пары оставались, а...

4
 Аватар для Aneron
166 / 164 / 27
Регистрация: 20.04.2010
Сообщений: 607
17.11.2011, 12:03
а в дебаге посмотреть нельзя где выдает ошибку,?
0
1 / 1 / 0
Регистрация: 12.09.2011
Сообщений: 17
17.11.2011, 12:13  [ТС]
ошибки нет есть вылет. его нет ни в условии if ни в работе erase если его вынимать из цикла, ошибка точно в процессе выполнения for(vector<int>::iterator d=va.begin(); d<va.end(); ++d) va.erase(d); просто кусок кода настолько маленький что я не могу увидеть где..
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
17.11.2011, 12:18
Arderun, При удалении элемента из массива итератор становится некорректным => ++d после erase(d) вызывает ошибку памяти. Либо используйте список, либо пишите d = va.erase(d) и тогда все будет ок.

Добавлено через 1 минуту
Пример.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <vector>
 
int main()
{
   std::vector<int> vec = {1,2,3,4,5,6,7,8};
   for (std::vector<int>::iterator iter = vec.begin(); iter != vec.end();)
   {
      if (!(*iter % 2))
      {
         iter = vec.erase(iter);
      }
      else
      {
         ++iter;
      }
   }
}
0
1 / 1 / 0
Регистрация: 12.09.2011
Сообщений: 17
17.11.2011, 12:18  [ТС]
вот! спасибо! забыл забирать итератор у erase.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.11.2011, 12:18
Помогаю со студенческими работами здесь

Удаление парных символов из строки
Как удалить парные символы из множества &quot;w,r,q,t&quot; из заданной символьной строки?

В текстовом файле удаление не парных строк
Не получаетса написать прогу которая будет удалать непарные строки. Прошу помоч. Вот наброски : Program StrokaDel; uses...

таблица из парных строк
Хотелось бы вместо этого case &quot;....&quot; : $l= 'H';break; case '.' : $l='E'; break; case '.-': $l='A';break; использовать...

Создание парных картинок
Ребята, я видел на данном форуме много тем с кодом для игры &quot;найди парные картинки&quot;, но не могли бы вы скинуть алгоритм генерации...

Количество парных элементов
int k = 0; Collections.sort(l); for(int i = 0;i&lt;l.size();i++){ temp = l.get(i); if(temp ==...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru