#include #include #include #include #include #include constexpr size_t length = 1048576; int main() { std::random_device randomDevice; std::mt19937 randomEngine(randomDevice()); std::normal_distribution normalDistribution(2147483648, 2147483648); std::set set; std::vector vector; vector.reserve(length); while (set.size() != length) { auto element = (long long)std::round(normalDistribution(randomEngine)); auto ret = set.insert(element); if (ret.second) { vector.push_back(element); // TODO: add offset // printf("%lld\n", element); } } assert(vector.size() == length); auto offset = *set.begin() < 0 ? 0 - *set.begin() : 0; for (auto element : vector) { printf("%lld\n", element + offset); } return 0; }