Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Advanced
Apr 5, 2002

For Efficiency, Favor Specialized Over Generic Member Algorithms


The algorithms in the standard C++ library are generic and, as such, can be inefficient (or unavailable) with certain containers.

For example, the std::swap algorithm is generic but lists define an optimized member function std::list<>::swap that is much more efficient:
 
    std::list<int> list1;
    std::list<int> list2;
    // ...

    std::swap(list1, list2); /* Inefficient */
    list1.swap(list2);       /* Optimized */

Another example would be std::sort. As it requires a random-access iterator it would not work on std::list<> containters at all. One would need to use std::list<>::sort instead:
 
    std::list<int> list;
    // ...

    std::sort(list); /* Error! */
    list.sort();     /* OK */
Alex Oren
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date