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

Удалить из списка элементы с повторяющимися более одного раза значениями - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача о подсчете треугольников http://www.cyberforum.ru/cpp-beginners/thread1588212.html
Добрый вечер, вообщем есть такая задачка: Есть ряд треугольников построены таким образом: первый это правильный треугольник с вершиной сверху и единичной стороной, назовем его "нормальным стоячим",...
C++ Вывести слова, в которых повторно встречается первая буква Дана строка символов, состоящая из отдельных слов, разделенных пробелом. Вывести на печать слова, в которых первая буква слова встречается в нем еще один раз. Вот заготовка на c++5.1 которая считает... http://www.cyberforum.ru/cpp-beginners/thread1588202.html
Сортировка в списке символьных значений C++
Доброго времени суток. Столкнулся с проблемой когда сортирую список, где есть как числовые так и символьные переменные, числовые переменные сортируются нормально, а символьные не получается. Вод...
C++ Определить к какой возрастной категории относится ребенок
:help:помогите написать диалоговую программу, которая запрашивает имя пользователя и его возраст и определяет, к какой возрастной категории он относится: 1) от 1 до 10 лет - ребенок; 2) от 11 до 15...
C++ Структура. Ввод и вывод http://www.cyberforum.ru/cpp-beginners/thread1588178.html
Выдает ошибку cin >>count; и cout <<count<<"";, я понимаю в чём ошибка, но как мне её решить? #include <iostream> #include <clocale> using namespace std; int a; struct football_Teams {
C++ Функция удаления из строки всех точек Нужно разработать рекурсивную функцию для удаления всех точек из строки. Вот, что у меня получилось. Выбивает ошибку String subscript out of range. В чем дело? #include "stdafx.h" #include... подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3142 / 307
Регистрация: 04.12.2011
Сообщений: 8,673
Записей в блоге: 5
21.11.2015, 20:27
Katysha_, я не понял Ваш код с массивом. Вот "велосипедик", он не защищен от передачи невалидного итератора, но так быстрее. Если хотите добавьте вначале пробег по списку для выяснения является ли start указателем на какой-либо элемент и если нет возвращайте end()
И эта функция принимает не значение для поиска, а итератор элемента то есть заточена под задачу, но переделать несложно. Берите и приспосабливайте.

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
46
47
48
49
50
#include <iostream>
#include <ctime>
#include <list>
#include <set>
 
using namespace std;
//ищет *toFindTo начиная с start и если найдёт возвращает итератор находки а если не найдёт то end()
list<int>::iterator findInList(list<int> &lst, list<int>::iterator &start, list<int>::iterator &toFindTo)
{
    if(start==lst.end())return start;
list<int>::iterator ptr=start;
ptr++;
for(; ptr!=lst.end(); ptr++)
{
if(*ptr==*toFindTo)break;
}
return ptr;
}
 
int  main(void) {
srand((int)time(0));
    list<int> lst;
    int N = 20;
    for (int i = 0; i<N; ++i)
    {
        lst.push_back(rand() % 20);
    }
    cout << endl;
     list<int>::iterator ptr;
    for (list<int>::iterator iter = lst.begin(); iter != lst.end(); *iter++)
    {
        cout << *iter << " ";
    }
    cout << endl;
 
list<int>::iterator iterFound;
 for (list<int>::iterator iter = lst.begin(); iter != lst.end(); *iter++)
 {
iterFound= findInList(lst, iter, iter);
cout<<"try to find "<<*iter<<" found ";
if(iterFound!=lst.end())cout<<*iterFound;
else cout<<"noting";
cout<<endl;
 }
 
 
cout << endl;
    system("pause");
    return 0;
}
Может кто-то еще чего подкинет.
Удачи.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru