Доброго времени суток,
Подскажите возможно ли сделать с помощью STL следующее:
Исходные данные:
Массив содержащий последовательно одинаковые элементы. Пример: 11123244444
Требуется:
сформировать/отредактировать массив таким образом чтоб последовательные элементы не повторялись и было подсчитано кол-во элементов. Пример {1,3}{2,1}{3,1}{2,1}{4,5}
Собственно замечательно удаляет повторения, только как еще подсчитать кол-во повторений ?
АЕ>std::map<int, int> m;
АЕ>for(iterator i = a.begin(); i != a.end(); ++i)
АЕ>{
АЕ> ++m[*i];
АЕ>}
АЕ>
Обрати внимание, что у ТС последовтельность "11123244444", превратилась в "{1,3}{2,1}{3,1}{2,1}{4,5}", а у тебя будет не так!
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, s.ts, Вы писали:
ST>тут достаточно std::set — он умеет считать кол-во элементов std::set::count
Интересно, о производительности тут хоть кто-то задумывается?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Аноним, Вы писали:
А> Массив содержащий последовательно одинаковые элементы. Пример: 11123244444 А>Требуется: А> сформировать/отредактировать массив таким образом чтоб последовательные элементы не повторялись и было подсчитано кол-во элементов. Пример {1,3}{2,1}{3,1}{2,1}{4,5}
А>Собственно замечательно удаляет повторения, только как еще подсчитать кол-во повторений ?
Не совсем понятно, в чём проблема-то? Ты результат в виде чего хочешь иметь? В виде контейнера пар?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, s.ts, Вы писали:
ST>>тут достаточно std::set — он умеет считать кол-во элементов std::set::count
E>Интересно, о производительности тут хоть кто-то задумывается?
А-а-а, преждевременная оптимизация! Только после профайалера!
Здравствуйте, jazzer, Вы писали:
E>>Интересно, о производительности тут хоть кто-то задумывается? J>А-а-а, преждевременная оптимизация! Только после профайалера!
Не, блин, но не настолько же? (это волосы от ужаса шевелятся!!!)
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Аноним, Вы писали:
А> Доброго времени суток, А>Подскажите возможно ли сделать с помощью STL следующее:
А>Исходные данные: А> Массив содержащий последовательно одинаковые элементы. Пример: 11123244444 А>Требуется: А> сформировать/отредактировать массив таким образом чтоб последовательные элементы не повторялись и было подсчитано кол-во элементов. Пример {1,3}{2,1}{3,1}{2,1}{4,5}
А>Собственно замечательно удаляет повторения, только как еще подсчитать кол-во повторений ?
А>заранее спасибо за ответы