A<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FSTL_Algorithms_Helper%2Fmem_fun_ref</id>
		<title>C++/STL Algorithms Helper/mem fun ref - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FSTL_Algorithms_Helper%2Fmem_fun_ref"/>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B/STL_Algorithms_Helper/mem_fun_ref&amp;action=history"/>
		<updated>2026-04-19T01:20:12Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C%2B%2B/STL_Algorithms_Helper/mem_fun_ref&amp;diff=1669&amp;oldid=prev</id>
		<title> в 14:21, 25 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B/STL_Algorithms_Helper/mem_fun_ref&amp;diff=1669&amp;oldid=prev"/>
				<updated>2010-05-25T14:21:06Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 14:21, 25 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C%2B%2B/STL_Algorithms_Helper/mem_fun_ref&amp;diff=1670&amp;oldid=prev</id>
		<title>Admin: 1 версия:&amp;#32;Импорт контента...</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B/STL_Algorithms_Helper/mem_fun_ref&amp;diff=1670&amp;oldid=prev"/>
				<updated>2010-05-25T10:27:40Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия: Импорт контента...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==mem_fun_ref with method from user-defined class==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;algorithm&amp;gt;&lt;br /&gt;
#include &amp;lt;functional&amp;gt;&lt;br /&gt;
#include &amp;lt;iomanip&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;numeric&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
class Employee&lt;br /&gt;
{&lt;br /&gt;
   public:&lt;br /&gt;
   Employee( string name = &amp;quot;Unknown&amp;quot;, int income = 0, int bonus_percentage = 0 );&lt;br /&gt;
   int bonus( int games_won ) const;&lt;br /&gt;
   void print() const;&lt;br /&gt;
   string name() const;&lt;br /&gt;
   int income() const;&lt;br /&gt;
   private:&lt;br /&gt;
   int salary() const;  &lt;br /&gt;
   int bonus_percentage_;&lt;br /&gt;
   int income_;&lt;br /&gt;
   string name_;&lt;br /&gt;
};&lt;br /&gt;
inline Employee::Employee(string name, int income, int bonus_percentage): bonus_percentage_( bonus_percentage ), income_( income ),name_( name )&lt;br /&gt;
{} &lt;br /&gt;
inline int Employee::bonus( int games_won ) const{ &lt;br /&gt;
   return static_cast&amp;lt;int&amp;gt;(salary() * ( bonus_percentage_ / 100.0 ) * games_won ); &lt;br /&gt;
}&lt;br /&gt;
inline&lt;br /&gt;
void Employee::print() const&lt;br /&gt;
{&lt;br /&gt;
   cout &amp;lt;&amp;lt; setw( 10 ) &amp;lt;&amp;lt; left &amp;lt;&amp;lt; name() &amp;lt;&amp;lt; &amp;quot;Income: &amp;quot; &amp;lt;&amp;lt; setw( 8 )&lt;br /&gt;
      &amp;lt;&amp;lt; right &amp;lt;&amp;lt; income() &amp;lt;&amp;lt; &amp;quot; euro per year   Bonus: &amp;quot;&lt;br /&gt;
      &amp;lt;&amp;lt; bonus_percentage_ &amp;lt;&amp;lt; &amp;quot;% of salary per game won\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
inline int Employee::income() const&lt;br /&gt;
{ return income_; }&lt;br /&gt;
inline&lt;br /&gt;
string Employee::name() const&lt;br /&gt;
{ return name_; }&lt;br /&gt;
inline&lt;br /&gt;
int Employee::salary() const&lt;br /&gt;
{ return static_cast&amp;lt;int&amp;gt;( 0.3 * income() ); }&lt;br /&gt;
int main( ){&lt;br /&gt;
   vector&amp;lt;Employee&amp;gt; myVector;&lt;br /&gt;
   myVector.push_back( Employee( &amp;quot;A&amp;quot;, 4, 3 ) );&lt;br /&gt;
   myVector.push_back( Employee( &amp;quot;B&amp;quot;, 1, 3 ) );&lt;br /&gt;
   myVector.push_back( Employee( &amp;quot;C&amp;quot;, 2, 3 ) );&lt;br /&gt;
   myVector.push_back( Employee( &amp;quot;D&amp;quot;, 3, 2 ) );&lt;br /&gt;
   myVector.push_back( Employee( &amp;quot;E&amp;quot;, 5, 1 ) );&lt;br /&gt;
   for_each( myVector.begin(), myVector.end(),mem_fun_ref( &amp;amp;Employee::print ) );&lt;br /&gt;
   vector&amp;lt;int&amp;gt; temporary( myVector.size() );&lt;br /&gt;
   transform( myVector.begin(), myVector.end(),temporary.begin(), mem_fun_ref( &amp;amp;Employee::income ) );&lt;br /&gt;
   int average_income = accumulate( temporary.begin(),temporary.end(), 0 ) / temporary.size();&lt;br /&gt;
      &lt;br /&gt;
   cout &amp;lt;&amp;lt; myVector.size()&lt;br /&gt;
      &amp;lt;&amp;lt; &amp;quot; : &amp;quot;&lt;br /&gt;
      &amp;lt;&amp;lt; average_income &amp;lt;&amp;lt; &amp;quot; \n\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use mem_fun_ref to pass in a user-defined member function==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;algorithm&amp;gt;&lt;br /&gt;
#include &amp;lt;functional&amp;gt;&lt;br /&gt;
#include &amp;lt;iomanip&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;list&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
class PC&lt;br /&gt;
{&lt;br /&gt;
   public:&lt;br /&gt;
   enum part { keyboard, mouse, monitor };&lt;br /&gt;
   PC( part a_part = PC::keyboard, int id = 0 );&lt;br /&gt;
   bool operator&amp;lt;( const PC&amp;amp; rhs ) const;&lt;br /&gt;
   void print() const;&lt;br /&gt;
   private:&lt;br /&gt;
   part part_;&lt;br /&gt;
   int id_;&lt;br /&gt;
};&lt;br /&gt;
inline&lt;br /&gt;
PC::PC( part a_part, int id ) : part_( a_part ), id_( id ){}&lt;br /&gt;
inline bool PC::operator&amp;lt;( const PC&amp;amp; rhs ) const{  &lt;br /&gt;
   return id_ &amp;lt; rhs.id_; &lt;br /&gt;
}&lt;br /&gt;
void PC::print() const {&lt;br /&gt;
   string component;&lt;br /&gt;
   if( part_ == keyboard )&lt;br /&gt;
      component = &amp;quot;keyboard&amp;quot;;&lt;br /&gt;
   else if( part_ == mouse )&lt;br /&gt;
      component = &amp;quot;mouse&amp;quot;;&lt;br /&gt;
   else&lt;br /&gt;
      component = &amp;quot;monitor&amp;quot;;&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;ID: &amp;quot; &amp;lt;&amp;lt; setw( 8 ) &amp;lt;&amp;lt; left &amp;lt;&amp;lt; id_ &amp;lt;&amp;lt; &amp;quot; PC: &amp;quot; &amp;lt;&amp;lt; component &amp;lt;&amp;lt; endl;&lt;br /&gt;
}&lt;br /&gt;
int main( )&lt;br /&gt;
{&lt;br /&gt;
   list&amp;lt;PC&amp;gt; listA;&lt;br /&gt;
   listA.push_back( PC( PC::keyboard, 3 ) );&lt;br /&gt;
   listA.push_back( PC( PC::mouse, 1 ) );&lt;br /&gt;
   listA.push_back( PC( PC::monitor, 9 ) );&lt;br /&gt;
   listA.push_back( PC( PC::keyboard, 2 ) );&lt;br /&gt;
   listA.push_back( PC( PC::monitor, 8 ) );&lt;br /&gt;
   for_each( listA.begin(), listA.end(),mem_fun_ref( &amp;amp;PC::print ) );&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>