Главная > Программирование > c++ > C++. Урок 9. Стандартные алгоритмы для работы с STL (algorithm)

C++. Урок 9. Стандартные алгоритмы для работы с STL (algorithm)

17.01.2010. c++, Программирование

0

Object moved to here.

В C++ существует множество спецальных алгоритмов для работы с массивами. Они позволяют сортировать данные в массиве, искать в нем какое-либо значение, менять элементы местами и т.д. Для их работы вам необходимо подкючить <algorithm> в начале программы.

Алгоритмы поиска.

Все алгоритмы поиска возвращают итератор на элемент, а не сам элемент.

Алгоритмы сортировки

Удаления элементов

Другие функции

На первое время хватит. Это были одни из самых используемых функций, со временем материал будет дополнен.

Пример (немного абсурдный, ну да ладно):

#include <fstream>
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

using namespace std;

int main()
{
ofstream out;
char filename[20];

ifstream in;

in.open("in.txt");

if (out==NULL)
{
cout< <"Error, can`t open file"<<endl;
return 0;
}

out.open("out.txt");
if (out==NULL)
{
cout<<"Error, can`t open file"<<endl;
return 0;
}
string s;
string text;

while  (in>>s)
text.append(s);

cout< <"Операции: вывести, сколько раз слово встречается  в файле: 1" <<endl;
cout<<"Sort file: 2"<<endl;
cout<<"Remove dublicates:3"<<endl;
cout<<"Random sort: 4"<<endl;
cout<<"Replace world to word: 5"<<endl;
cout<<"text v obratnom poradke: 6"<<endl;
cout<<"Write to file and exit:7"<<endl;
int status=0;
string::iterator start,end;
start=text.begin();
end=text.end();

while (true)
{
switch (status)
{  case 1:
{
cout<<"enter word"<<endl;
char word[100];
cin>>word;
cout< <"Result: "<<count(start,end,*word)<<endl;
break;

};
case 2:
{

sort(start,end);
cout<<"Done"<<endl;
break;
};
case 3:
{

unique(start,end);
cout<<"Done"<<endl;
break;
};
case 4:
{

random_shuffle(start,end);

cout<<"Done"<<endl;
break;
};
case 5:
{

cout<<"enter world 1"<<endl;
char word1[100];
cin>>word1;
cout< <"enter world 2"<<endl;
char word2[100];
cin>>word2;

replace(start,end,*word1,*word2);
cout< <"Done"<<endl;
break;
};
case 6:
{

reverse(start,end);
cout<<"Done"<<endl;
break;
};
case 7:
{
out<<text<<endl;

cout<<"good bye"<<endl;

return 0;
};
}

cin>>status;
}

return 0;
}



Похожие записи:


Метки:

Rambler's Top100 Блогун - монетизируем блоги