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

Как можно ТАК обащаться к массиву? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить является ли последовательность арифметической прогрессией http://www.cyberforum.ru/cpp-beginners/thread382021.html
#include <iostream> using namespace std; const int n = 10; int main() { int a; int i, imax=0, imin=0;
C++ скачать Борланд С++ Билдер Мне нужен сайт или что-нибудь , где можно будет скачать Борланд С++ Билдер (на виндовс хп 32-х разрядный). http://www.cyberforum.ru/cpp-beginners/thread382013.html
C++ построить новый массив C[i] по формуле
даны массивы L1..L20, M1..M20 построить новый массив C по формуле: C= L, если L<0 C= значок суммы (M/i), если L>=0 я просто новичок и не знаю как делать) заранее спасибо
C++ Помогите пожлуйста составить последовательный алгоритм к блок схеме!
Нужно составить последовательный алгоритм ( не знаю как правильно назвать ) Помогите пожалуйста, всю голову уже сломала. Я думаю будет как то так: оn1; if 1{ оn 2; оn 3; if 2 оn 4;
C++ Поиск первых двух максимумов в массиве http://www.cyberforum.ru/cpp-beginners/thread381989.html
Нужно найти первые два максимума что я не так делаю? #include <iostream> using namespace std; const int n = 10; int main() { float a;
C++ Вызов функции по таймеру Здравствуйте. По нажатию на кнопку (на форме) вызывается функция, скажем, SomeFunction (); которая выполняет определенную задачу (суть не важно) и запускает таймер, время отсчета (в миллисекундах)... подробнее

Показать сообщение отдельно
Нач_физик
2 / 2 / 0
Регистрация: 12.02.2011
Сообщений: 49

Как можно ТАК обащаться к массиву? - C++

11.11.2011, 22:06. Просмотров 371. Ответов 5
Метки (Все метки)

код взял тут Алгоритм Хоспула
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 <string>
using namespace std;
 
int HorspoolMatch(string T,string P)
{       
        int n=T.length();
        int m=P.length();
        int Slide[256];
        for(int i=0; i<256; ++i)
                Slide[i]=m;
        for(int l=0; l<m; ++l)
                Slide[P[l]] = m - l - 1;
 
        int k=0;
        while(k < n - m + 1)
        {
                for(int i=0; i<m; i++)
                {
                        if(T[k+i]!=P[i])
                                break;
                        if(i==m-1)
                                return k;
                }
                k += Slide[T[k+m-1]];
        }
        return -1;
}
 
void main()
{
        setlocale (LC_ALL, "Russian");
        
        string T="";//строка, в которой ищем
        string P="";//строка, которую ищем
        string S="";//строка,для создания случайных символов,которые добавляются потом в строки T и P
        //генерируем строки
        for(int i=0; i<1000000;i++)
        {
                S=rand();
                T.append(S);
                if(i>1 && i<5)
                {
                        P.append(S);
                }
        }
 
        cout << "Алгоритм Хорспула: " << HorspoolMatch(T,P) <<  endl;
        
}
собственно говоря не понимаю принцип работы строки 14
C++
1
Slide[P[l]] = m - l - 1;
P[l]- возвращает символ на позиции l ?
Ну или ссылку на символ в позиции l, ну а дальше то что- Slide[символ] - бред какой то, но ведь работает же - объясните пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru