<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Forum Pasja Informatyki - Najnowsze z tagiem find_if</title>
<link>https://forum.pasja-informatyki.pl/tag/find_if</link>
<description>Powered by Question2Answer</description>
<item>
<title>jak zebezpieczyć funkcję w c++</title>
<link>https://forum.pasja-informatyki.pl/218254/jak-zebezpieczyc-funkcje-w-c</link>
<description>Witam, mam mały problem. Napisałem program, wykorzystujący find_if - ma znaleźć elementy mniejsze od 10.. No i napotykam problem, ponieważ funkcja nie zawsze dostaje choćby jeden element przechodzący ten predykat, czyli mniejszy od 10. Wtedy program wysypuje się. Mam pytanie, jak zabezpieczyć funkcję, jeśli nie znajdzie żadnego elementu mniejszego od podanej wartości, czyli defacto find_id nie zwróci nic. ?</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/218254/jak-zebezpieczyc-funkcje-w-c</guid>
<pubDate>Fri, 20 Jan 2017 17:53:15 +0000</pubDate>
</item>
<item>
<title>Problem z funkcją find_if w c++</title>
<link>https://forum.pasja-informatyki.pl/217611/problem-z-funkcja-find_if-w-c</link>
<description>

&lt;p&gt;Witam, mam problem z find_if. Wszystko wydaje mi się ok, ale niestety w trakcie kompilacji wywala mi błąd &quot;no operatr &quot;=&quot; matches these operands&quot; ...&lt;/p&gt;



&lt;p&gt;kod wygląda następująco&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include&amp;lt;iostream&amp;gt;
#include&amp;lt;cstdlib&amp;gt;
#include&amp;lt;ctime&amp;gt;
#include&amp;lt;string&amp;gt;
#include&amp;lt;vector&amp;gt;
#include&amp;lt;cmath&amp;gt;
#include&amp;lt;algorithm&amp;gt;
using namespace std;

struct Dziecko
{
	string nazwisko;
	string imie;
	int x;
	int y;
};
string losuj_imie(string losowe_imie)
{	
	for (int i = 0; i &amp;lt; 6; ++i)
	{
		losowe_imie[i] = rand() % ('Z' - 'A') + 'A';
	}
	return losowe_imie;
}
void wyswietl_liste(vector&amp;lt;Dziecko&amp;gt; Lista)
{
	for (int i = 0; i &amp;lt; 5; ++i)
	{
		cout &amp;lt;&amp;lt; Lista[i].nazwisko &amp;lt;&amp;lt; &quot;  -  &quot;;
		cout &amp;lt;&amp;lt; Lista[i].imie &amp;lt;&amp;lt; &quot;  -  &quot;;
		cout &amp;lt;&amp;lt; Lista[i].x &amp;lt;&amp;lt; &quot;  -  &quot;;
		cout &amp;lt;&amp;lt; Lista[i].y &amp;lt;&amp;lt; endl;
	}
}
float odleglosc(int x, int y)
{
	return sqrt(x*x + y*y);
}
bool czy_dalej(Dziecko &amp;amp;a, Dziecko &amp;amp;b)
{
	float odl1, odl2;
	odl1=odleglosc(a.x, a.y);
	odl2 = odleglosc(b.x, b.y);

	if (odl1 &amp;lt; odl2)
		return true;
	else
		return false;
}

bool ktore_nazwisko_pierwsze_wg_alfabetu(Dziecko &amp;amp;a, Dziecko &amp;amp;b)
{
	if (a.nazwisko&amp;lt;b.nazwisko)
	{
		return true;
	}
	else
	{
		if (a.nazwisko == b.nazwisko)
		{
			if (a.imie &amp;lt; b.imie)
			{
				return true;
			}
			else return false;
		}
		else return false;
	}
		//return false;
}
void sortuj_wg_alfabetu(vector&amp;lt;Dziecko&amp;gt; &amp;amp;lista)
{
	sort(lista.begin(), lista.end(), ktore_nazwisko_pierwsze_wg_alfabetu);

}
//bool predykat_do_find_if(Dziecko a)
//{
//	if (sqrt((a.x)*(a.x) + (a.y)*(a.y)) &amp;lt; 10)
//	{
//		return true;
//	}
//	else return false;
//}
Dziecko dzieci_ktore_sa_blizej_niz_10(vector&amp;lt;Dziecko&amp;gt;&amp;amp;ListaDzieci)
{
	Dziecko itr;
	itr = find_if(ListaDzieci.begin(), ListaDzieci.end(), [](int x){return x &amp;lt; 10; });
	return itr;
}
int main()
{
	srand(time(NULL));
	string imieD=&quot;      &quot;;
	vector&amp;lt;Dziecko&amp;gt; Lista_dzieci;
	Dziecko testowa_zmienna;
	for (int i = 0; i &amp;lt; 5; ++i)
	{
		testowa_zmienna.imie = losuj_imie(imieD);
		testowa_zmienna.nazwisko = losuj_imie(imieD);
		testowa_zmienna.x = rand() % 20;
		testowa_zmienna.y = rand() % 20;

		Lista_dzieci.push_back(testowa_zmienna);
	}
	wyswietl_liste(Lista_dzieci);
	sort(Lista_dzieci.begin(), Lista_dzieci.end(), czy_dalej);
	cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; &quot;Po Posortowaniu wzgledem odleglosci: &quot; &amp;lt;&amp;lt; endl;
	wyswietl_liste(Lista_dzieci);

	//zadanie a
	sortuj_wg_alfabetu(Lista_dzieci);

	cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; &quot;Po Posortowaniu wzgledem nazwiska i imienia: &quot; &amp;lt;&amp;lt; endl;
	wyswietl_liste(Lista_dzieci);

//	//zadanie b
//	vector&amp;lt;Dziecko&amp;gt; dziecko{};
	Dziecko dziecko_ponizej_10;
	dziecko_ponizej_10=dzieci_ktore_sa_blizej_niz_10(Lista_dzieci);
	system(&quot;pause&quot;);

}&lt;/pre&gt;



&lt;p&gt;cały program działa bez problemu, oprócz właśnie funkcji find_if. Ktoś może wie dla czego jest taki błąd? może źle to zwracam?&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/217611/problem-z-funkcja-find_if-w-c</guid>
<pubDate>Wed, 18 Jan 2017 22:19:59 +0000</pubDate>
</item>
<item>
<title>find_if c++, jak skorzystać</title>
<link>https://forum.pasja-informatyki.pl/216268/find_if-c-jak-skorzystac</link>
<description>

&lt;p&gt;Witam, mam problem, ponieważ nie mogę nigdzie znaleźć dobrego przykładu, jak używać funkcji find_if w c++. Za pomocą tej funkcji mam znaleźć osobe/osoby oddalone od pkt. o maksymalnie 10 jednostek... Problem leży tylko w umiejętności korzystania z tej funkcji, której niestety nie posiadam. Mógłby ktoś pomóc?&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include&amp;lt;iostream&amp;gt;
#include&amp;lt;cstdlib&amp;gt;
#include&amp;lt;ctime&amp;gt;
#include&amp;lt;string&amp;gt;
#include&amp;lt;vector&amp;gt;
#include&amp;lt;cmath&amp;gt;
#include&amp;lt;algorithm&amp;gt;
using namespace std;

struct Dziecko
{
	string nazwisko;
	string imie;
	int x;
	int y;
};
string losuj_imie(string losowe_imie)
{	
	for (int i = 0; i &amp;lt; 6; ++i)
	{
		losowe_imie[i] = rand() % ('Z' - 'A') + 'A';
	}
	return losowe_imie;
}
void wyswietl_liste(vector&amp;lt;Dziecko&amp;gt; Lista)
{
	for (int i = 0; i &amp;lt; 5; ++i)
	{
		cout &amp;lt;&amp;lt; Lista[i].nazwisko &amp;lt;&amp;lt; &quot;  -  &quot;;
		cout &amp;lt;&amp;lt; Lista[i].imie &amp;lt;&amp;lt; &quot;  -  &quot;;
		cout &amp;lt;&amp;lt; Lista[i].x &amp;lt;&amp;lt; &quot;  -  &quot;;
		cout &amp;lt;&amp;lt; Lista[i].y &amp;lt;&amp;lt; endl;
	}
}
float odleglosc(int x, int y)
{
	return sqrt(x*x + y*y);
}
bool czy_dalej(Dziecko &amp;amp;a, Dziecko &amp;amp;b)
{
	float odl1, odl2;
	odl1=odleglosc(a.x, a.y);
	odl2 = odleglosc(b.x, b.y);

	if (odl1 &amp;lt; odl2)
		return true;
	else
		return false;
}

bool ktore_nazwisko_pierwsze_wg_alfabetu(Dziecko &amp;amp;a, Dziecko &amp;amp;b)
{
	if (a.nazwisko&amp;lt;b.nazwisko)
	{
		return true;
	}
	else
	{
		if (a.nazwisko == b.nazwisko)
		{
			if (a.imie &amp;lt; b.imie)
			{
				return true;
			}
			else return false;
		}
		else return false;
	}
		//return false;
}
void sortuj_wg_alfabetu(vector&amp;lt;Dziecko&amp;gt; &amp;amp;lista)
{
	sort(lista.begin(), lista.end(), ktore_nazwisko_pierwsze_wg_alfabetu);

}
bool predykat_do_find_if(Dziecko a)
{
	if (sqrt((a.x)*(a.x) + (a.y)*(a.y)) &amp;lt; 10)
	{
		return true;
	}
	else return false;
}
void dzieci_ktore_sa_blizej_niz_10(vector&amp;lt;Dziecko&amp;gt;&amp;amp;ListaDzieci)
{
	vector&amp;lt;Dziecko&amp;gt;::iterator ThisIt = {};
	ThisIt=find_if(ListaDzieci.begin(), ListaDzieci.end(), predykat_do_find_if);
	cout&amp;lt;&amp;lt; *ThisIt;
}
int main()
{
	srand(time(NULL));
	string imieD=&quot;      &quot;;
	vector&amp;lt;Dziecko&amp;gt; Lista_dzieci;
	Dziecko testowa_zmienna;
	for (int i = 0; i &amp;lt; 5; ++i)
	{
		testowa_zmienna.imie = losuj_imie(imieD);
		testowa_zmienna.nazwisko = losuj_imie(imieD);
		testowa_zmienna.x = rand() % 20;
		testowa_zmienna.y = rand() % 20;

		Lista_dzieci.push_back(testowa_zmienna);
	}
	wyswietl_liste(Lista_dzieci);
	sort(Lista_dzieci.begin(), Lista_dzieci.end(), czy_dalej);
	cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; &quot;Po Posortowaniu wzgledem odleglosci: &quot; &amp;lt;&amp;lt; endl;
	wyswietl_liste(Lista_dzieci);

	//zadanie a
	sortuj_wg_alfabetu(Lista_dzieci);

	cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; &quot;Po Posortowaniu wzgledem nazwiska i imienia: &quot; &amp;lt;&amp;lt; endl;
	wyswietl_liste(Lista_dzieci);

	//zadanie b
	vector&amp;lt;Dziecko&amp;gt; dziecko{};
	dziecko.push_back(dzieci_ktore_sa_blizej_niz_10(Lista_dzieci));
	system(&quot;pause&quot;);

}&lt;/pre&gt;



&lt;p&gt;W funkcji main chodzi o moment gdzie zakomentowałem //zadanie b&lt;/p&gt;



&lt;p&gt;Próbowałem na różne sposoby, ale niestety...&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/216268/find_if-c-jak-skorzystac</guid>
<pubDate>Sat, 14 Jan 2017 22:41:21 +0000</pubDate>
</item>
</channel>
</rss>