C++/Deque/deque pop

Материал из C\C++ эксперт
Перейти к: навигация, поиск

list operations on a deque

  
#include <string>
#include <deque>
#include <algorithm>  
#include <iostream>      
using namespace std;
void print( deque<string> );
int main()
{
    deque<string> animals;                                                  
    animals.push_back( "A" );                                             
    animals.push_back( "B" );                                               
    animals.push_front( "C" );                                            
    animals.push_front( "D" );                                         
    print(animals);               
    animals.pop_front();                                                    
    animals.pop_back();                                                     
    print(animals);               
    //list operations on a deque:
    animals.erase(find( animals.begin(), animals.end(), "E" ));           
    print(animals);               
    animals.insert( animals.begin(), "F" );                            
    print(animals);               
    int sz = animals.size();      
    animals.resize( 5 );          
    animals[sz] = "G";                               
    animals[sz+1] = "H";   
    animals[sz+2] = "I";        
    print( animals );             
    animals.erase( animals.begin() + 2 );                    
    print( animals );             
    //sorting a deque:
    sort( animals.begin(), animals.end() );                                 
    print( animals );           
    return 0;
}
void print( deque<string> d ) {
    typedef deque<string>::const_iterator CI;                 
    cout << "The number of items in the deque:" << d.size() << endl; 
    for ( CI iter = d.begin(); iter != d.end(); iter++ )
         cout << *iter << " ";
    cout << endl << endl;
}


Remove first and last element

  
 
/* The following code example is taken from the book
 * "The C++ Standard Library - A Tutorial and Reference"
 * by Nicolai M. Josuttis, Addison-Wesley, 1999
 *
 * (C) Copyright Nicolai M. Josuttis 1999.
 * Permission to copy, use, modify, sell and distribute this software
 * is granted provided this copyright notice appears in all copies.
 * This software is provided "as is" without express or implied
 * warranty, and with no claim as to its suitability for any purpose.
 */
#include <iostream>
#include <deque>
#include <string>
#include <algorithm>
#include <iterator>
using namespace std;
int main()
{
    // create empty deque of strings
    deque<string> coll;
    // insert several elements
    coll.assign (3, string("string"));
    coll.push_back ("last string");
    coll.push_front ("first string");
    // print elements separated by newlines
    copy (coll.begin(), coll.end(),ostream_iterator<string>(cout,"\n"));
    cout << endl;
    // remove first and last element
    coll.pop_front();
    coll.pop_back();
    // print elements separated by newlines
    copy (coll.begin(), coll.end(),ostream_iterator<string>(cout,"\n"));
    cout << endl;
}
/* 
first string
string
string
string
last string
string
string
string

 */