Mega Code Archive

 
Categories / C++ / Vector
 

Make vector large enough to hold all value

#include <algorithm> #include <functional> #include <iomanip> #include <iostream> #include <list> #include <string> #include <vector> using namespace std; class PC {    public:    enum part { keyboard, mouse, monitor };    PC( part a_part = PC::keyboard, int id = 0 );    bool operator<( const PC& rhs ) const;    void print() const;    private:    part part_;    int id_; }; inline PC::PC( part a_part, int id ) : part_( a_part ), id_( id ){} inline bool PC::operator<( const PC& rhs ) const{      return id_ < rhs.id_;  } void PC::print() const {    string component;    if( part_ == keyboard )       component = "keyboard";    else if( part_ == mouse )       component = "mouse";    else       component = "monitor";    cout << "ID: " << setw( 8 ) << left << id_ << " PC: " << component << endl; } int main( ) {    list<PC> listA;    listA.push_back( PC( PC::keyboard, 3 ) );    listA.push_back( PC( PC::mouse, 1 ) );    listA.push_back( PC( PC::monitor, 9 ) );    listA.push_back( PC( PC::keyboard, 2 ) );    listA.push_back( PC( PC::monitor, 8 ) );    list<PC> inspector_B( listA );    inspector_B.front() = PC( PC::mouse, 6 );    inspector_B.back() = PC( PC::monitor, 1 );    // must sort before using set algorithms    listA.sort();    inspector_B.sort();    vector<PC> result;    result.resize( listA.size() + inspector_B.size() ); }