Obiecte Funcți

Curs
8/10 (2 voturi)
Domeniu: Calculatoare
Conține 1 fișier: doc
Pagini : 2 în total
Cuvinte : 493
Mărime: 5.51KB (arhivat)
Cost: Gratis

Extras din document

Obiecte functii (functori).

Într-o expresie, apelul unei functii este înlocuit prin rezultatul întors de functie. Misiunea functiei poate fi preluata de catre un obiect. În acest scop se supraîncarca operatorul apel de functie sub forma function operator()().

Obiectele apartinând claselor care au supraîncarcat operatorul apel de functie sunt obiecte functii sau functori.

STL prevede o serie de clase generice pentru comparatii. Clasele comparatii sunt functii binare derivate din clasa binary_function:

template <class arg1, class arg2, class rez>

struct binary_function{

typedef arg1 first_argument_type;

typedef arg2 second_argument_type;

typedef rez result_type;

};

Pentru clase unare se defineste sablonul unary_function. Exemplu:

template <class T>

struct equal_to : binary_function(T, T, bool){

bool operator()(const T& x, const T& y) const {

return x==y;

}

};

În acest mod sunt definiti functorii: equal_to<T>, not_equal<T>, greater<T>, less<T>, greater_equal(), less_equal() care asigura algoritmilor o interfata uniforma.

Astfel pentru a sorta un tablou cu functia de comparatie mai mic în valoare absoluta, vom defini:

#include <iostream>

#include <functional> // less<T>

#include <cstdlib> // abs()

struct absLess{

bool operator()(int x, int y)const{

return abs(x) < abs(y);

};

};

STL asigura, de asemenea, prin supraîncarcarea operatorului apel de functie, clase pentru operatiile aritmetice si logice. Aceste sunt: plus<T>, minus<T>, multiplies<T>, divides<T>, modulus<T>, negate<T>, logical_and<T>, logical_or<T>.

Afisati parametrii liniei de comanda, sortati în ordine invers-lexicografica.

#include <iostream>

#include <functional>

#include <string>

#include <algorithm>

using namespace std;

void main(int ac, char** av){

sort(av, av+ac, greater_equal<string>());

for(int i=0; i<ac; i++)

cout << av[i] << ” ”;

cout << endl;

}

Preview document

Obiecte Funcți - Pagina 1
Obiecte Funcți - Pagina 2

Conținut arhivă zip

  • Obiecte functii.doc

Alții au mai descărcat și

Proiectare Asistata de Calculator

1. Desen simplu 2D Pentru inceput am desenat un cerc cu comanda CIRCLE cu diametru de 70.000 Apoi cu comanda OFFSET am construit inca un cerc la...

Clasa Graphics 2D

Desenarea Folosind Contextul Grafic Dat de Clasa Graphics2D Abstract. Prezenta lucrare ofera informatii generale realizarii desenelor în...

Prelucrarea Imaginilor Digitale 1

Esantionarea si cuantificare sunt realizate de dispozitivele de achizitie a imaginilor. Acestea pot consta intr-un singur senzor care se misca...

Curs ASDN

1.1. Sisteme de numeratie - Sistemele numerice prelucrează informatie - Informatia este codificată ® un anumit tip de reprezentare - Sistemul...

Multiprocesoare

INTRODUCERE “Necesarul de simulări al Departamentului pentru Energie (DOE) al Statelor Unite depăşeşte cu mult capacitatea celor mai puternice...

Bazele Informaticii

Cu totii stim ca necesitatea reprezinta mama inventicii. Acest lucru este valabil si in lumea computerelor. U.S Army a fost prima care a solicitat...

Ai nevoie de altceva?