A<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B_Tutorial%2Fdeque%2Ftransform</id>
		<title>C++ Tutorial/deque/transform - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B_Tutorial%2Fdeque%2Ftransform"/>
		<link rel="alternate" type="text/html" href="http://cppe.ru/index.php?title=C%2B%2B_Tutorial/deque/transform&amp;action=history"/>
		<updated>2026-04-11T00:51:52Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://cppe.ru/index.php?title=C%2B%2B_Tutorial/deque/transform&amp;diff=2527&amp;oldid=prev</id>
		<title> в 14:21, 25 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://cppe.ru/index.php?title=C%2B%2B_Tutorial/deque/transform&amp;diff=2527&amp;oldid=prev"/>
				<updated>2010-05-25T14:21:17Z</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://cppe.ru/index.php?title=C%2B%2B_Tutorial/deque/transform&amp;diff=2528&amp;oldid=prev</id>
		<title>Admin: 1 версия:&amp;#32;Импорт контента...</title>
		<link rel="alternate" type="text/html" href="http://cppe.ru/index.php?title=C%2B%2B_Tutorial/deque/transform&amp;diff=2528&amp;oldid=prev"/>
				<updated>2010-05-25T10:29:55Z</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;==Checking if One Container Is Less Than or Greater Than Another==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;algorithm&amp;gt;&lt;br /&gt;
#include &amp;lt;deque&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
template &amp;lt;class T&amp;gt;&lt;br /&gt;
void print(T&amp;amp; c){&lt;br /&gt;
   for( typename T::iterator i = c.begin(); i != c.end(); i++ ){&lt;br /&gt;
      std::cout &amp;lt;&amp;lt; *i &amp;lt;&amp;lt; endl;&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
int main( )&lt;br /&gt;
{&lt;br /&gt;
   const int data1[] = { 200, 250, 250, 100, 500, 500, 400 };&lt;br /&gt;
   const int data2[] = { 200, 200, 300, 500, 400, 400 };&lt;br /&gt;
   // create and initialize vectors to hold the debts&lt;br /&gt;
   vector&amp;lt;int&amp;gt; debts1( data1,data1 + sizeof( data1 ) / sizeof( data1[0] ) );&lt;br /&gt;
   vector&amp;lt;int&amp;gt; debts2( data2,data2 + sizeof( data2 ) / sizeof( data2[0] ) );&lt;br /&gt;
   // sort into descending order&lt;br /&gt;
   sort( debts1.begin(), debts1.end(), greater&amp;lt;int&amp;gt;() );&lt;br /&gt;
   sort( debts2.begin(), debts2.end(), greater&amp;lt;int&amp;gt;() );&lt;br /&gt;
   // display debts&lt;br /&gt;
   print( debts1 );&lt;br /&gt;
   print( debts2 );&lt;br /&gt;
   if( debts1 &amp;gt; debts2 )&lt;br /&gt;
      cout &amp;lt;&amp;lt; &amp;quot;\nCollect from Group 1 first&amp;quot;;&lt;br /&gt;
   else&lt;br /&gt;
      cout &amp;lt;&amp;lt; &amp;quot;\nCollect from Group 2 first&amp;quot;;&lt;br /&gt;
   // store one group of debts in a different container&lt;br /&gt;
   deque&amp;lt;int&amp;gt; debts2_deque( debts2.begin(), debts2.end() );&lt;br /&gt;
   // compare the vector to the deque&lt;br /&gt;
   if( lexicographical_compare( debts2_deque.begin(),&lt;br /&gt;
      debts2_deque.end(), debts1.begin(), debts1.end() ) )&lt;br /&gt;
      cout &amp;lt;&amp;lt; &amp;quot;\nCollect from Group 1 in vector first&amp;quot;;&lt;br /&gt;
   else&lt;br /&gt;
      cout &amp;lt;&amp;lt; &amp;quot;\nCollect from Group 2 in deque first&amp;quot;;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Transform deque with boolean function==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;algorithm&amp;gt;&lt;br /&gt;
#include &amp;lt;deque&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
bool logical_xor( bool a, bool b );&lt;br /&gt;
void print_result( const char* names[], const deque&amp;lt;bool&amp;gt;&amp;amp; print,const char* text );&lt;br /&gt;
int main( )&lt;br /&gt;
{&lt;br /&gt;
   const char* contacts[] ={ &amp;quot;A&amp;quot;, &amp;quot;J&amp;quot;,&amp;quot;S&amp;quot;, &amp;quot;D&amp;quot;, &amp;quot;R&amp;quot; };&lt;br /&gt;
   const bool salesman1_data[] = { true, true, false, false, true };&lt;br /&gt;
   const bool salesman2_data[] = { false, false, true, true, true };&lt;br /&gt;
   const int num_customers = sizeof( salesman1_data ) / sizeof( salesman1_data[0] );&lt;br /&gt;
   // create deques and initialize with above data&lt;br /&gt;
   deque&amp;lt;bool&amp;gt; salesman1( salesman1_data,salesman1_data+num_customers );&lt;br /&gt;
   deque&amp;lt;bool&amp;gt; salesman2( salesman2_data,salesman2_data+num_customers );&lt;br /&gt;
   deque&amp;lt;bool&amp;gt; result( num_customers );&lt;br /&gt;
   print_result( contacts, salesman1,&amp;quot;has been called by Salesman 1&amp;quot; );&lt;br /&gt;
   print_result( contacts, salesman2,&amp;quot;has been called by Salesman 2&amp;quot; );&lt;br /&gt;
   // customers called by both salesmen&lt;br /&gt;
   transform( salesman1.begin(), salesman1.end(), salesman2.begin(),result.begin(), logical_and&amp;lt;bool&amp;gt;() );&lt;br /&gt;
   print_result( contacts, result,&amp;quot;has been called by both salesmen&amp;quot; );&lt;br /&gt;
   // customers called by at least one salesman&lt;br /&gt;
   transform( salesman1.begin(), salesman1.end(), salesman2.begin(),result.begin(), logical_or&amp;lt;bool&amp;gt;() );&lt;br /&gt;
   print_result( contacts, result,&amp;quot;has been called by at least one salesman&amp;quot; );&lt;br /&gt;
   // customers called by only one salesman&lt;br /&gt;
   transform( salesman1.begin(), salesman1.end(), salesman2.begin(),result.begin(), logical_xor );&lt;br /&gt;
   print_result( contacts, result,&amp;quot;has been called by only one salesman&amp;quot; );&lt;br /&gt;
   // customers not called by Salesman 1&lt;br /&gt;
   transform( salesman1.begin(), salesman1.end(),result.begin(), logical_not&amp;lt;bool&amp;gt;() );&lt;br /&gt;
   print_result( contacts, result,&amp;quot;has not been called by Salesman 1&amp;quot; );&lt;br /&gt;
}&lt;br /&gt;
inline&lt;br /&gt;
bool logical_xor( bool a, bool b ) {  &lt;br /&gt;
   return a ? !b : b;  &lt;br /&gt;
}&lt;br /&gt;
void print_result( const char* names[], const deque&amp;lt;bool&amp;gt;&amp;amp; which,const char* text ){&lt;br /&gt;
   for( deque&amp;lt;bool&amp;gt;::size_type i = 0; i &amp;lt; which.size(); ++i )&lt;br /&gt;
      if( which[i] )&lt;br /&gt;
         cout &amp;lt;&amp;lt; names[i] &amp;lt;&amp;lt; &amp;quot; &amp;quot; &amp;lt;&amp;lt; text &amp;lt;&amp;lt; endl;&lt;br /&gt;
   cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>