272                      9. ,    STL

^include <algorithm>
#include <string>
ftinclude <vector>
using namespace std;

int main()
{

string first_names[5] = {"", "",
"", "", ""};

string last_names[5] = {"", "",

"", "", ""};

vector<string> names(first_names, first_names + 5);

vector<string> names2(10);

vector<string>::iterator p;

copy(last_names, last_names + 5, names2.begin());

copy(names.begin(), names.end(), names2.begin() + 5);

reverse(names2.begin(), names2.end());

for (p = names2.begin(); p != names2.end(); ++p)
cout  *p  ' \t' ;

}

    copy ()  last_names  -
 names2.     copy ()   first_names ,
      names.  reverse () 
 ,   .

      :

 template-eclass Inputlter, class Outputlter>

Outputlter copy(Inputlter bl, Inputlter el, Outputlter b2 ) ;

     bl  el.     b2.
    .

 template<class Bidilteri, class Bidilter2>

Bidilter2 copy_backward(Bidilteri bl, Bidilteri el, Bidilter2
b2) ;

     bl  1.     b2.
,  ,  1  b2,    -
 ( b2).   b2 - (el - bl).

     .3.3,   -
,  . 432.

9.10.4.  

   ,    -
 .

     accumulate ()  -
 , a inner_product ()   .