                          6.   

          .
        (vector)   (list).
(      (deque)   
 ,   vector,     
    . deque  , , 
 ,      .
     set   ,  set  
   .    , , 
         - 
,    , ,  , , ,    .
       ,    
 .  ,      .

                         6.1.   
                            6.2.   ?

            ++  ,  ,  ,
       . 
     ,   ,  
  ,      .
         :  vector,  deque
   .       
  ,        
  .
       ,      . 
    ( , ,  5,  15,
 7  ..)    ,    
      .  , 
   ,  :     
  ,    .    
 . 
   ( deque  ,    
       ;  
  ,     
   ,        
.)
        .   
    ,       
.     :   . 
 ,    :   
 ,    .  ,  
 ,         
.
      ,        ( 
 )         ,  
   ?      :  
? (        .)
      :       , 
       ,   
,   .      
   .      ,
     .   
         
  .
            .
     .

                                 6.3.   ?

      .   ?    
,     ,      
    ,     .   
    ,       
    .    
        ,
 ,       .
     .   .
           .   
   ,       
     ,     . (
  ,   .)     
    ,   
.       
 ++   Rogue Wave.     
   .
        ,    
   . (    , 
      ,  vector, deque  string.
  list    .)     
  capacity().      ,
     .      
size().
     Rogue Wave  ,   ivec     0.
       1,    256. 
,        ivec   256
.   256-    : 
       ,     
   .  :      
,        .
   (   ,     ,    
  .)
         ,   .   
   . ?
       ,    ,   
,   . (   
  .   2.2   ,   
14.5     ).
                
.       (  
    ),         
  .
   ,          , 
    . ,  
   ,        ,  
 .        10 000   6.70
  0.82 . ?    1  256,   
  .  ,    
         
.
    reserve()      11.
:

 11 ,  deque    reserve()

int main() {
   vector< string > svec;
   svec.reserve( 32 ); //    32
   // ...

     ,       , 
       1,    . ,  
  string  double     reserve()   . 
  ,         
,     6.4.
            string  
 ,      .   , 
     ,   .   
  , ,     .

              6.4.    ?

262

           
  .    allocator   
   .  ++     ,  
  .     new  delete.
     :  
    ,    ,  
       .
   ,     
 ,   :

   vector< string, allocator > svec;
   list< int, allocator > ilist;

      :

   int ia[ 4 ] = { 0, 1, 2, 3 };

    push_back()   0, 1, 2, 3,  push_front()
  3, 2, 1, 0. 13
         ,   
    - resize().
         .      
-  ,      - resize():
   13  - push_front()  ,   
deque,   vector:  deque     .
            .   
 ,  ,  
          . :

   list< int > ilist2( ilist ) ;

         : ,
, , ,   ,   . 
   .       , 
  ;      .   
       .

          (  
  ).    :

     ;
      (   ,  
      ,      );
       (      
     ).

      ,      
 ++   .

                                 6.5. 

       iterator      const_iterator,
     ,   const.
      ,  ,      
:

   vector<int>::iterator iter = vec->begin()+vec.size()/2;
   iter += 2;

 iter   .
           vector 
deque. list    ,    
    .
        ,    

   vector<string> svec;
   // ...

   //  svec2   svec
   vector<string> svec2( svec.begin(), svec.end() );

   //  svec3   svec
   vector<string>::iterator it = svec.begin() + svec.size()/2;

   vector<string> svec3 ( svec.begin(), it );
   // ...

      istream_iterator (    
12.4.3)        svec:

   //  istream_iterator   
   istream_iterator<string> infile( cin );

   // istream_iterator,   
   istream_iterator<string> eos;

   //  svec ,   cin;
   vector<string> svec( infile, eos );
   // ...

    ,    ,  ,
       .
     12.4          . 
   ,      
 .

                6.6.    

14   insert() ,     
-.         
++,       ,      ,
   .

                           6.6.1. 

                      6.6.2.   

                      6.6.3.  

                       6.7.   

  15   ,   
   .      :

   vector<string,allocator> *lines_of_text;

    ,    ++, 
  :

   vector<string> *lines_of_text;

   (   -     set,   
   .)
          : 
 ,   dog  dogs, love, loving  loved  
 .

                           6.8.    

          int,    
  ,  find(), :

   string::size_type

   :

   string::size_type pos = name.find( "Anna" );

    find()    ,   .  
  find_first_of(),    
,      -.
         ,    .  
   find_first_of()  , 
,    .

rfind()  , ..  ,   :

find_first_not_of()   ,    ,  
.
   ,    ,   , 
:

   string elems( "0123456789" );
   string dept_code( "03714p3" );

   //    'p'
   string::size_type pos = dept_code.find_first_not_of(elems) ;


                        6.9.   

    string filt_elems( "\",.;:!?)(\\/" );

        ,        
  ,     . , \" 
  ,    ,  \\     .)

 :

   while (( pos = word.find_first_of( filt_elems, pos )) != string::npos )


                   6.10.     

286

    ,  ,  ,  
     .
        :

    

   to1ower( (*iter)[pos] );

288

    .

     ++   ctype,   
   ,    ,  
,  toupper(), tolower()  ..     
 

   #include <locale>

           ctype,  
    .)
        ,       .
         
 . ,      ,    's' 
 :

                   6.11.    

                   6.12.    

         (map),    
      ,    .

         6.12.1.   map    
          6.12.2.     
             6.12.3.    
                        6.12.4. 

     ,   ,    
 .

                     6.12.5.   map
                    6.13.   -
          6.13.1.   set    
                         6.13.2.  
                    6.13.3.   
                    6.14.  
310

                   6.15.  multimap  multiset

    map  set     ,  multimap
()  multiset ()    
 .

                                 6.16. 
                     6.17.     
                         6.18.    iStack

