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

STL find_end (непонятно Оо) - C++

Восстановить пароль Регистрация
 
borovik
208 / 202 / 1
Регистрация: 25.07.2010
Сообщений: 1,131
19.12.2010, 20:07     STL find_end (непонятно Оо) #1
чтото сильно ругается... что не так?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdafx.h"
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    string s,d,*n;
    cin>>s;
    cin>>d;
    n = find_end(s.begin(),s.end(),d.begin(),d.end());
    cout<<n;
}
Добавлено через 14 минут
да видно сложна программка ))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2010, 20:07     STL find_end (непонятно Оо)
Посмотрите здесь:

C++ Непонятно
Алгоритм std::find_end - аналог std::search_n C++
Непонятно условие C++
C++ непонятно почему вылетает
C++ выдает ошибку...непонятно
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2908 / 1337 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
19.12.2010, 20:26     STL find_end (непонятно Оо) #2
Приведите ошибки.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
19.12.2010, 20:27     STL find_end (непонятно Оо) #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
        string s,d;
        cin>>s;
        cin>>d;
        string::iterator it = find_end(s.begin(),s.end(),d.begin(),d.end());
        if(it != s.end())
            cout<<*it<<'\n';
        return 0;
}
lemegeton
 Аватар для lemegeton
2908 / 1337 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
19.12.2010, 20:29     STL find_end (непонятно Оо) #4
C++
1
2
3
4
5
6
        string s,d;
        string::iterator n;
        cin>>s;
        cin>>d;
        n = find_end(s.begin(),s.end(),d.begin(),d.end());
        cout<<*n;
borovik
208 / 202 / 1
Регистрация: 25.07.2010
Сообщений: 1,131
19.12.2010, 20:35  [ТС]     STL find_end (непонятно Оо) #5
Цитата Сообщение от ForEveR Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
        string s,d;
        cin>>s;
        cin>>d;
        string::iterator it = find_end(s.begin(),s.end(),d.begin(),d.end());
        if(it != s.end())
            cout<<*it<<'\n';
        return 0;
}
выводит бред или ошибку
http://www.imageup.ru/img196/bezymyannyjj514290.png
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
19.12.2010, 20:38     STL find_end (непонятно Оо) #6
borovik, На этот код не может выводить. Ибо предусмотрена проверка на то, что поиск точно прошел.

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "stdafx.h"
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
        string s,d;
        cin>>s;
        cin>>d;
        string::iterator it = find_end(s.begin(),s.end(),d.begin(),d.end());
        if(it != s.end())
            cout<<*it;
        else
            cout<<"Not finded\n";
        return 0;
}
borovik
208 / 202 / 1
Регистрация: 25.07.2010
Сообщений: 1,131
19.12.2010, 20:39  [ТС]     STL find_end (непонятно Оо) #7
Цитата Сообщение от ForEveR Посмотреть сообщение
borovik, На этот код не может выводить. Ибо предусмотрена проверка на то, что поиск точно прошел.
разве не должно возвращать кол-во вхождений подстроки в строке?
http://www.imageup.ru/img196/bezymyannyjj2514306.png
если нет, то как сделать?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
19.12.2010, 20:47     STL find_end (непонятно Оо) #8
borovik, Ну уж не find_end явно)
А по скрину - как раз find_end
borovik
208 / 202 / 1
Регистрация: 25.07.2010
Сообщений: 1,131
19.12.2010, 20:56  [ТС]     STL find_end (непонятно Оо) #9
А как вывести номер элемента как в примере

int a[10] = {3, 2, 5, 7, 5, 8, 7, 5, 8, 5},
b[2] = {5, 8}, *p2;
p2 = find_end(a, a+10, b, b+2);
cout « p2 - a « endl;
return 0; }
Вывод этой программы:
7

а[7] (=5) является начальным элементом последней пол*ной последовательности 5,8 (заданной массивом Ь), которая встречается в а.

Добавлено через 3 минуты
Цитата Сообщение от ForEveR Посмотреть сообщение
borovik, Ну уж не find_end явно)
А по скрину - как раз find_end
//А типо если вставить a++?
как я понял если нашёл то сразу выходит... то а++ не выйдет
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
19.12.2010, 21:04     STL find_end (непонятно Оо) #10
Так что-ли?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdafx.h"
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
        string s,d;
        cin>>s;
        cin>>d;
        string::iterator it = find_end(s.begin(),s.end(),d.begin(),d.end());
        if(it != s.end())
        {
            cout<<*it<<'\n';
            cout<<std::distance(s.begin(), it)<<'\n';
         }
         else
            cout<<"Not finded\n";
         return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2010, 22:54     STL find_end (непонятно Оо)
Еще ссылки по теме:

Домашка по C++,непонятно! C++
C++ wxDev-C++ непонятно
C++ непонятно со строкой

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

Или воспользуйтесь поиском по форуму:
borovik
208 / 202 / 1
Регистрация: 25.07.2010
Сообщений: 1,131
19.12.2010, 22:54  [ТС]     STL find_end (непонятно Оо) #11
спс добрый человек )

Добавлено через 1 час 42 минуты
чтото я запутался в синтаксисе помогите
заюзать mismatch, элементы не равны если различие более чем на Х.
пс. возможно организовать без pair?
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
#include "stdafx.h"
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
 
class mycl{
    public:
        int x;
        bool operator()(int z, int c){
            return !(z-c)<x;
        }
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    mycl cl;
    string a,s;
    string::iterator it;
    pair<string*,string*>difpos(0,0);
    cin>>cl.x;
    cin>>a;
    cin>>s;
    difpos = mismatch(a,a.length(),s,cl);
            it = difpos.first;
    if (!a.end())
         cout<<"не совпадает на более чем Х"<<*it;
        else {
             cout<<"все элементы совпадают по правилу Х!";
         }
}
Yandex
Объявления
19.12.2010, 22:54     STL find_end (непонятно Оо)
Ответ Создать тему
Опции темы

Текущее время: 15:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru