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

Наибольшая длина отрезка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ опишите подробно что тут происходит (int*) http://www.cyberforum.ru/cpp-beginners/thread874595.html
char p; int *y=(int*)(p+8); //Можно ли считать y массивом в приведенной ниже программе. Если да, то каков //диапазон его индексов?
C++ Описать структуру с именем MARSH Здравствуйте!Напишите пожалуйста программу для этой задачи! Условие задачи- Описать структуру с именем MARSH,содержащую следующие поля; 1)Название начального пункта маршрута; 2)Название... http://www.cyberforum.ru/cpp-beginners/thread874582.html
Машина тьюринга C++
Доброго времени суток! Пожалуйста, помогите разобраться с решением задачи по МТ. Прочитал теорию, тщательно поискав в гугле какие-нибудь решения примеров - ничего конкретного так и не удалось...
C++ Функция CharToOem
Объясните пожалуйста, в чем тут ошибка? #include <windows.h> #include <stdio.h> #include <conio.h> int main() { char src; char dest;
C++ Задача по инфе http://www.cyberforum.ru/cpp-beginners/thread874543.html
Помогите дописать функцию numtrim и функцию обработки фразы(vivod Texta) для решения задачи: Функция TCHAR* numtrim (TCHAR* str) получает строку str, в которой могут быть цифры в конце, в...
C++ Дана строка, содержащая латинские буквы и скобки. Если скобки расставлены правильно - вывести 0. Иначе - номер позиции, где есть ошибочная скобка Дана строка, содержащая латинские буквы и круглые скобки. Если скобки расставлены правильно (то есть каждой открывающей соответству-ет одна закрывающая), то вывести число 0. В противном случае... подробнее

Показать сообщение отдельно
DiffEreD
1430 / 767 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
22.05.2013, 21:01
Ну, с помощью STL, вот как то так:
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
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
template<typename T>
bool func(const T& a, const T& b)
{
    return a != b;
}
 
int main ()
{
    std::vector<int> v {1,2,3,3,3,3,3,4,5,5,5,2,8,8,8,8,8,8,8,8,8};
    
    auto start = std::adjacent_find(v.begin(), v.end());
    auto stop = start;
    size_t max_length = 0, local_length = 0;
    while (start != v.end())
    {
        stop = std::adjacent_find(start, v.end(), func<int>);
        if (stop != v.end())
            stop++;
        std::copy(start, stop, std::ostream_iterator<int>(std::cout, " "));
        std::cout<<'\n';
        
        local_length = std::distance(start, stop);
        if (max_length < local_length)
            max_length = local_length;
        start = std::adjacent_find(stop, v.end());
    }
    std::cout<<"\nMax length is: "<<max_length;
    
    std::cout<<"\n\n";
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru