/**************************************************************** **** **** This file belongs with the course **** Introduction to Scientific Programming in C++/Fortran2003 **** copyright 2016-2023 Victor Eijkhout eijkhout@tacc.utexas.edu **** **** adjacent.cxx : C++23 ranges adjacent view **** **** WRONG: `adjacent' not present in range-v3 **** ****************************************************************/ #include #include using std::cout,std::setw,std::fixed; #include using std::default_random_engine,std::uniform_real_distribution; #include using std::vector; #if 0 #include using namespace ranges; #else #include using namespace std::ranges; #endif int main() { /* * Generate some random array */ vector values(10); default_random_engine generator{1}; uniform_real_distribution random_number(0.f,1.f); for ( auto& v : values ) { v = random_number(generator); cout << fixed << setw(3) << v << " "; } //codesnippet rangeadj3 for ( auto [ lt,md,rt ] : values | views::adjacent<3> ) cout << fixed << setw(3) << lt << "," << setw(3) << md << "," << setw(3) << rt << '\n'; //codesnippet end }