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%2FVector%2Fobject_vector</id>
		<title>C++/Vector/object vector - История изменений</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%2FVector%2Fobject_vector"/>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B/Vector/object_vector&amp;action=history"/>
		<updated>2026-04-18T20:00:18Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C%2B%2B/Vector/object_vector&amp;diff=1723&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/Vector/object_vector&amp;diff=1723&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/Vector/object_vector&amp;diff=1724&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/Vector/object_vector&amp;diff=1724&amp;oldid=prev"/>
				<updated>2010-05-25T10:27:46Z</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;==Call member function for each element in vector==&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;
 &lt;br /&gt;
/* The following code example is taken from the book&lt;br /&gt;
 * &amp;quot;The C++ Standard Library - A Tutorial and Reference&amp;quot;&lt;br /&gt;
 * by Nicolai M. Josuttis, Addison-Wesley, 1999&lt;br /&gt;
 *&lt;br /&gt;
 * (C) Copyright Nicolai M. Josuttis 1999.&lt;br /&gt;
 * Permission to copy, use, modify, sell and distribute this software&lt;br /&gt;
 * is granted provided this copyright notice appears in all copies.&lt;br /&gt;
 * This software is provided &amp;quot;as is&amp;quot; without express or implied&lt;br /&gt;
 * warranty, and with no claim as to its suitability for any purpose.&lt;br /&gt;
 */&lt;br /&gt;
//#define mem_fun1 mem_fun&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;algorithm&amp;gt;&lt;br /&gt;
#include &amp;lt;functional&amp;gt;&lt;br /&gt;
&lt;br /&gt;
class Person {&lt;br /&gt;
  private:&lt;br /&gt;
    std::string name;&lt;br /&gt;
  public:&lt;br /&gt;
    //...&lt;br /&gt;
    void print () const {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; name &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
    }&lt;br /&gt;
    void printWithPrefix (std::string prefix) const {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; prefix &amp;lt;&amp;lt; name &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
void foo (const std::vector&amp;lt;Person&amp;gt;&amp;amp; coll)&lt;br /&gt;
{&lt;br /&gt;
    using std::for_each;&lt;br /&gt;
    using std::bind2nd;&lt;br /&gt;
    using std::mem_fun_ref;&lt;br /&gt;
    // call member function print() for each element&lt;br /&gt;
    for_each (coll.begin(), coll.end(), mem_fun_ref(&amp;amp;Person::print));&lt;br /&gt;
    // call member function printWithPrefix() for each element&lt;br /&gt;
    // - &amp;quot;person: &amp;quot; is passed as an argument to the member function&lt;br /&gt;
    for_each (coll.begin(), coll.end(),bind2nd(mem_fun_ref(&amp;amp;Person::printWithPrefix),&amp;quot;person: &amp;quot;));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ptrfoo (const std::vector&amp;lt;Person*&amp;gt;&amp;amp; coll)&lt;br /&gt;
                                   // ^^^ pointer !&lt;br /&gt;
{&lt;br /&gt;
    using std::for_each;&lt;br /&gt;
    using std::bind2nd;&lt;br /&gt;
    using std::mem_fun;&lt;br /&gt;
    // call member function print() for each referred object&lt;br /&gt;
    for_each (coll.begin(), coll.end(),&lt;br /&gt;
              mem_fun(&amp;amp;Person::print));&lt;br /&gt;
    // call member function printWithPrefix() for each referred object&lt;br /&gt;
    // - &amp;quot;person: &amp;quot; is passed as an argument to the member function&lt;br /&gt;
    for_each (coll.begin(), coll.end(),bind2nd(mem_fun(&amp;amp;Person::printWithPrefix),&amp;quot;person: &amp;quot;));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    std::vector&amp;lt;Person&amp;gt; coll(5);&lt;br /&gt;
    foo(coll);&lt;br /&gt;
    std::vector&amp;lt;Person*&amp;gt; coll2;&lt;br /&gt;
    coll2.push_back(new Person);&lt;br /&gt;
    ptrfoo(coll2);&lt;br /&gt;
}&lt;br /&gt;
  /* &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
person:&lt;br /&gt;
person:&lt;br /&gt;
person:&lt;br /&gt;
person:&lt;br /&gt;
person:&lt;br /&gt;
person:&lt;br /&gt;
 */      &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Getting a C-Style Array from a Vector==&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;numeric&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;
void doubler( int a[], int length ){&lt;br /&gt;
   for( int i = 0; i &amp;lt; length; ++i )&lt;br /&gt;
      a[i] *= 2;&lt;br /&gt;
} &lt;br /&gt;
int main( ){&lt;br /&gt;
   vector&amp;lt;int&amp;gt; data( 5, 1 );&lt;br /&gt;
   partial_sum( data.begin(), data.end(), data.begin() );&lt;br /&gt;
   print( data );&lt;br /&gt;
   if( !data.empty() ) {&lt;br /&gt;
      doubler( &amp;amp;data[0], static_cast&amp;lt;int&amp;gt;( data.size() ) );&lt;br /&gt;
      print( data );&lt;br /&gt;
   }&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;
==Sort vector of user-defined values==&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;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;iterator&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
#include &amp;lt;utility&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
typedef pair&amp;lt;int,string&amp;gt; Pair;&lt;br /&gt;
inline bool less_than_second( const Pair&amp;amp; b1, const Pair&amp;amp; b2 ){&lt;br /&gt;
   return b1.second &amp;lt; b2.second;&lt;br /&gt;
}&lt;br /&gt;
int main( )&lt;br /&gt;
{&lt;br /&gt;
   const char* names[] = { &amp;quot;A&amp;quot;,&amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;, &amp;quot;D&amp;quot;,&amp;quot;E&amp;quot; };&lt;br /&gt;
   const int values[] = { 18, 20, 26, 30, 41 };&lt;br /&gt;
   const int num_pairs = sizeof( names ) / sizeof( names[0] );&lt;br /&gt;
   vector&amp;lt;Pair&amp;gt; pair( num_pairs );&lt;br /&gt;
   transform( values, values+num_pairs, names,pair.begin(), make_pair&amp;lt;int,string&amp;gt; );&lt;br /&gt;
   sort( pair.begin(), pair.end() );&lt;br /&gt;
   vector&amp;lt;Pair&amp;gt;::const_reverse_iterator pair_rend = pair.rend();&lt;br /&gt;
   &lt;br /&gt;
   for( vector&amp;lt;Pair&amp;gt;::const_reverse_iterator i= pair.rbegin(); i != pair_rend; ++i )&lt;br /&gt;
      cout &amp;lt;&amp;lt; i-&amp;gt;first &amp;lt;&amp;lt; &amp;quot; - &amp;quot; &amp;lt;&amp;lt; i-&amp;gt;second;&lt;br /&gt;
   sort( pair.begin(), pair.end(), less_than_second );&lt;br /&gt;
   vector&amp;lt;Pair&amp;gt;::const_iterator pair_end = pair.end();&lt;br /&gt;
   for( vector&amp;lt;Pair&amp;gt;::const_iterator i = pair.begin();&lt;br /&gt;
      i != pair_end; ++i )&lt;br /&gt;
   cout &amp;lt;&amp;lt; i-&amp;gt;second &amp;lt;&amp;lt; &amp;quot; - $&amp;quot; &amp;lt;&amp;lt; i-&amp;gt;first &amp;lt;&amp;lt; &amp;quot; values\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;
==Store user-defined objects in a vector.==&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;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
#include &amp;lt;algorithm&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
class Employee {&lt;br /&gt;
  string name;&lt;br /&gt;
  unsigned number;&lt;br /&gt;
public:&lt;br /&gt;
  Employee() { name = &amp;quot;&amp;quot;; number = 0; }&lt;br /&gt;
  Employee(string n, unsigned num) {&lt;br /&gt;
    name = n;&lt;br /&gt;
    number = num;&lt;br /&gt;
  }&lt;br /&gt;
  string get_name() { return name; }&lt;br /&gt;
  unsigned get_number() { return number; }&lt;br /&gt;
};&lt;br /&gt;
void show(vector&amp;lt;Employee&amp;gt; vect) {&lt;br /&gt;
  vector&amp;lt;Employee&amp;gt;::iterator itr;&lt;br /&gt;
  for(itr=vect.begin(); itr != vect.end(); ++itr)&lt;br /&gt;
    cout &amp;lt;&amp;lt; itr-&amp;gt;get_number() &amp;lt;&amp;lt; &amp;quot; &amp;quot; &amp;lt;&amp;lt; itr-&amp;gt;get_name() &amp;lt;&amp;lt; endl;;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  vector&amp;lt;Employee&amp;gt; employeeList;&lt;br /&gt;
  employeeList.push_back(Employee(&amp;quot;A&amp;quot;, 9));&lt;br /&gt;
  employeeList.push_back(Employee(&amp;quot;B&amp;quot;, 8));&lt;br /&gt;
  employeeList.push_back(Employee(&amp;quot;C&amp;quot;, 6));&lt;br /&gt;
  employeeList.push_back(Employee(&amp;quot;D&amp;quot;, 1));&lt;br /&gt;
  show(employeeList);&lt;br /&gt;
  return 0;&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>