[LLVMbugs] [Bug 12999] New: unordered_set::insert calls operator new when no insert occurs

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu May 31 13:31:11 PDT 2012


             Bug #: 12999
           Summary: unordered_set::insert calls operator new when no
                    insert occurs
           Product: libc++
           Version: unspecified
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: All Bugs
        AssignedTo: hhinnant at apple.com
        ReportedBy: gratal at gmail.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

When calling insert on an unordered_set with an element that is already in the
list, operator new gets called. This can lead to horrible performance when
multiple repeated elements are inserted into a set. This doesn't happen in

Example code:

#include <unordered_set>

int main()
    std::unordered_set<int> s;

    for(int i=0;i<100000;i++)  

This will call operator new 100000 times, compared to just 1 in libstdc++.

Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

More information about the llvm-bugs mailing list