online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
//C++20 #include <iostream> #include <algorithm> #include <random> #include <chrono> #include <execution> int main() { //политика выполнения constexpr auto policy = std::execution::seq // std::execution::unseq // std::execution::par // std::execution::par_unseq ; size_t count=10'000u; //генерим в пределах, сопоставимых с количеством std::mt19937 gen(std::random_device{}()); std::uniform_int_distribution<unsigned int> dis(0u,count); std::vector<int> v; v.reserve(count); for(size_t i=0; i<count; ++i) { v.push_back(dis(gen)); } auto t1=std::chrono::steady_clock::now(); //для алгоритма не нужно, это для отображения результирующего количества size_t numbers_to_show{}; //сюда копим строку с числами std::string s; s.reserve(1024); for(auto b = std::begin(v), e = std::end(v), cur=b; cur!=e; ++cur) { auto& val = *cur; //в начале - ищем, что нет нигде ДАЛЕЕ if(cur==b && std::find(policy, cur+1, e, val) != e ) [[unlikely]] {continue;} //в конце - ищем, что нет нигде ДО if(cur+1==e && std::find(policy, b, cur+1, val) != cur ) [[unlikely]] {continue;} //в середине - ищем отсутствие ДО и ПОСЛЕ if(std::find(policy, b , cur, val) != cur) {continue;} if(std::find(policy, cur+1, e , val) != e ) {continue;} s.append(std::to_string(val)).append(","); ++numbers_to_show; } auto t2=std::chrono::steady_clock::now(); //вывод чисел на экран отключил //std::cout << s << '\n'; std::cout <<"numbers to show: "<< numbers_to_show<<'\n'; std::cout <<"time = "<< std::chrono::duration_cast<std::chrono::duration<double,std::milli>>(t2-t1)<<'\n'; }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue