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

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

Войти
Регистрация
Восстановить пароль
 
Ёрик
46 / 46 / 2
Регистрация: 07.01.2009
Сообщений: 298
#1

Удалить символ в начале очереди - C++

19.07.2009, 15:20. Просмотров 814. Ответов 4
Метки нет (Все метки)

Мне нужно удалить символ,который повторется в начале списка,причем она должен выступать параметром. То есть если у нас есть такая очередь:
"ааааапораправолпрло",тогда должна удалиться буква "а",если такая очередь:
"%%%%%%%а%%%%%ваыапываываыва",то должен удалиться символ '%' или если очередь такая
"11111;1агырваы",то соответсвенно должна удалиться цифра 1.Как это сделать за один проход?Легко сделать,если сначала сосчитаешь кол-во символов повторяющихся в начале,а потом запустишь цикл удаления,но так делаешь лишние проходы.Возможно ли сделать за 1 проход очереди?Если нет,то какой алгоритм самый быстрый?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.07.2009, 15:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удалить символ в начале очереди (C++):

Как элемент в начале очереди поменять с минимальным элементом? - C++
Как элемент с начала очереди поменять с минимальным элементом ???

В тексте удалить указанный символ везде, где он встречается. Программа не позволяет ввести символ - C++
#include<iostream> #include<conio.h> #include<cstdlib> using namespace std; int main() { setlocale(0,"Russian"); char s; ...

Удалить пробелы в начале и конце строки - C++
Удалить группу пробелов, с которых, возможно начинается и заканчивается строка строки читаются из файла и выводятся в файл Разрешено...

Ошибка при создании шаблонной очереди (LNK2019 ссылка на неразрешенный внешний символ) - C++
Привет :) Помогите найти ошибку при создании шаблонного класса. Искал синтаксис в интернете, всё нормально, ошибок быть не должно. ...

Удалить элемент очереди - C++
Здравствуйте. Сделал всё ну практически по Липпману: #include <queue> #include <iostream> using std::queue; int main() { ...

Удалить элемент из очереди - C++
Пытаюсь удалить элемент из очереди, пожалуйста, подскажите, как уже сделать, чтобы заработала данная функция (строки 71-78), с удалением...

4
Monte-Cristo
2790 / 1376 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
19.07.2009, 15:25 #2
Ёрик, непонял...
если у нас есть очередь допустим:
"11234845"
на выходе мы должны получить:
"1234845"
или
"234845"?
0
Rififi
2360 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
19.07.2009, 15:38 #3
std::string s = "...";
const char ch = *s.begin();
s.erase(std::remove(s.begin(), s.end(), ch), s.end());
0
Ёрик
46 / 46 / 2
Регистрация: 07.01.2009
Сообщений: 298
19.07.2009, 22:10  [ТС] #4
Monte-Cristo,мы должны получить "234845"
Rififi,у меня очередь,а не строка,задание неудачно объяснил,но за идею спасибо,сейчас что-н. попробую сделать.Просто тут ,оказывается, стандратный алгоритм есть,а я pop_front все пытался использовать.

Добавлено через 58 минут 33 секунды
Rififi, этот алгоритм вообще удаляет ВСЕ ЭЛЕМЕНТЫ,то есть удалятся ВСЕ элементы,находящиеся в списке:
Напр,, у меня очередь:
"444444ж4ываыа?*)№;4444_" и в результате у меня удалтся ВСЕ четверки, а мне унжно,чтобы удалились только первые.

Добавлено через 5 часов 16 минут 29 секунд
все,сам написал алгоритм,просто двойное условие поставил
0
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
20.07.2009, 03:41 #5
Цитата Сообщение от Ёрик
Как это сделать за один проход?Легко сделать,если сначала сосчитаешь кол-во символов повторяющихся в начале,а потом запустишь цикл удаления
C
1
2
3
4
5
void DeleteFirstChars(int ch)
{
    while (LookQueue(ch))
        ReadQueue();
}
то есть при просмотре она элемент не считывает, если он удался, то считывает элемент
0
20.07.2009, 03:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.07.2009, 03:41
Привет! Вот еще темы с ответами:

Удалить последний элемент очереди - C++
Нужно удалить последний элемент очереди. struct node { node *next; int info; }; void deleteLastElement(node*&el, node*begin,...

Как удалить элементы из очереди - C++
Подскажите пожалуйста как удалить элементы из статической очереди? К примеру есть 10 элементов в очереди, как их удалить?

Удалить из очереди все отрицательные числа - C++
Создать однонаправленную очередь с числами в диапазоне от –50 до +50. После создания очереди выполнить индивидуальное задание. В конце...

Удалить из очереди все отрицательные числа - C++
С++. Удалить из очереди все отрицательные числа. Помогите пожалуйста.


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

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

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