stdcxx-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Sebor (JIRA)" <>
Subject [jira] Created: (STDCXX-1033) incorrect documentation of nth_element in User's Guide
Date Tue, 07 Apr 2009 22:30:13 GMT
incorrect documentation of nth_element in User's Guide

                 Key: STDCXX-1033
             Project: C++ Standard Library
          Issue Type: Bug
          Components: Documentation
    Affects Versions: 4.2.1
            Reporter: Martin Sebor
            Assignee: Martin Sebor
            Priority: Minor
             Fix For: 4.2.2

>From an external source:

There appears to be an error in your documentation here:

This is your example:

The example program illustrates finding the fifth largest value in a {{vector}} of random

void nth_element_example()
// illustrates the use of the nth_element algorithm
// see alg7.cpp for complete source code
  // make a vector of random integers
  std::vector<int> aVec(10);
  std::generate(aVec.begin(), aVec.end(), randomValue);
  // now find the 5th largest
  std::vector<int>::iterator nth = aVec.begin() + 4;
  std::nth_element(aVec.begin(), nth, aVec.end());
  std::cout << "fifth largest is " << *nth << std::endl;

However {{nth_element}} uses {{<}} as the default predicate so your example will produce
the 5th smallest element, not the 5th largest.

To get the fifth largest you should use {{std::greater<int>()}} as a predicate or use
the fifth from the other end, i.e. {{aVec.end() - 5}}.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message