1 | #include <vector>
|
---|
2 | #include <boost/container/flat_set.hpp>
|
---|
3 |
|
---|
4 | int main(int argc, char** argv) {
|
---|
5 | boost::container::flat_set<int32_t> fs;
|
---|
6 | fs.reserve(623);
|
---|
7 |
|
---|
8 | // The values inserted aren't relevant, but there must be some amount of
|
---|
9 | // interleaving between the two sets; inserting [1..311] then [501..618]
|
---|
10 | // doesn't trigger the overflow.
|
---|
11 | for (int32_t i = 0, n = 1; i < 311; i++, n += 2) {
|
---|
12 | fs.insert(n);
|
---|
13 | }
|
---|
14 |
|
---|
15 | std::vector<int32_t> v;
|
---|
16 | for (int32_t i = 0, n = 2; i < 118; i++, n += 2) {
|
---|
17 | v.push_back(n);
|
---|
18 | }
|
---|
19 | fs.insert(boost::container::ordered_unique_range, v.begin(), v.end());
|
---|
20 |
|
---|
21 | return 0;
|
---|
22 | }
|
---|