Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
set/map equal_range bug in libc++
Language:
Ada
Assembly
Bash
C#
C++ (gcc)
C++ (clang)
C++ (vc++)
C (gcc)
C (clang)
C (vc)
Client Side
Clojure
Common Lisp
D
Elixir
Erlang
F#
Fortran
Go
Haskell
Java
Javascript
Kotlin
Lua
MySql
Node.js
Ocaml
Octave
Objective-C
Oracle
Pascal
Perl
Php
PostgreSQL
Prolog
Python
Python 3
R
Rust
Ruby
Scala
Scheme
Sql Server
Swift
Tcl
Visual Basic
Layout:
Vertical
Horizontal
#include <set> #include <iostream> #include <iterator> struct comparator { using range_t = std::pair<int, int>; using is_transparent = std::true_type; bool operator()(int lhs, int rhs) const { return lhs < rhs; } bool operator()(int lhs, range_t rhs) const { return lhs < rhs.first; } bool operator()(range_t lhs, int rhs) const { return lhs.second < rhs; } }; using range_set = std::set<int, comparator>; int main() { range_set set = { 1, 3, 6, 10 }; auto range = comparator::range_t{2, 7}; auto eq = set.equal_range(range); auto low = set.lower_bound(range); auto high = set.upper_bound(range); std::cout << "equal_range returned " << std::distance(eq.first, eq.second) << " elem(s): "; std::copy(eq.first, eq.second, std::ostream_iterator<int>(std::cout, " ")); std::cout << "\nlower/upper returned " << std::distance(low, high) << " elem(s): "; std::copy(low, high, std::ostream_iterator<int>(std::cout, " ")); std::cout << '\n'; return 0; }
clang++
Show compiler warnings
[
+
] Compiler args
[
+
]
Show input
Compilation time: 0.83 sec, absolute running time: 0.07 sec, cpu time: 0.02 sec, memory peak: 3 Mb, absolute service time: 0,92 sec
edit mode
|
history
|
discussion
equal_range returned 1 elem(s): 3 lower/upper returned 2 elem(s): 3 6