#include
using namespace std;
struct A{ int x, y;};
bool f(A &a1, A& a2){
return a1.x + a1.y == a2.x + a2.y;}
int main (){
int m[8] = {45, 60, 60, 25, 25, 2, 13, 35};
cout << *(adjacent_fi nd(m, m + 8));
// Нəтижесі: 60
A ma[5] = {{2,4}, {3,1}, {2,2}, {1,2}, {1,2}};
cout << (*adjacent_fi nd(ma, ma + 5, f)).x << endl;
// Нəтижесі: 3
return
0;
}
count, count_if
count
алгоритмі белгілі бір мəннің тізбекке ену нұсқаларының санын
есептеуді орындайды:
template
typename
iterator_traits::difference_type
count(In fi rst, In last, const T& value);
Алгоритмнің бұл формасы берілген
value
мəнінің тізбекті контейнердегі
енгізілулер санын анықтайды. Нəтиженің типі ретінде екі итератор арасындағы
айырма –
difference_type
(358 б. қараңыз) типі қабылданады.
count_if
алгоритмі тізбекте шарттың орындалу санын есептейді:
template
typename
iterator_traits::difference_type
count_if(In fi rst, In last, Pred pred);
Алгоритмнің бұл формасы тізбекті контейнерде функция немесе
функционалдық объект түрінде
pred
предикаты арқылы қойылған шартты
қанағаттандыратын элементтер санын анықтайды.
count_if
функциясының қолданылу мысалы 375 б. көрсетілген.
376
equal
equal
алгоритмі екі тізбек элементтерін жұбтары бойынша салыстыруды
орындайды. Қолданушы нені теңдік деп санауға болатынын анықтайтын пре-
дикатты тағайындай алады:
Достарыңызбен бөлісу: |