Advertisement
Tainel

src/base/features/shortcuts.hpp

May 21st, 2023 (edited)
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.74 KB | Source Code | 0 0
  1. #pragma once
  2.  
  3. #include"base/dependencies/index.hpp"
  4.  
  5. #include"integers.hpp"
  6.  
  7. // Entire container ranges.
  8. #define ALL(c)begin(c),end(c)
  9. #define RALL(c)rbegin(c),rend(c)
  10.  
  11. // Common iterations.
  12. #define FORE(e,c)for(auto const&e:(c))
  13. #define FORIT(it,c)for(auto it=begin(c);it!=end(c);++it)
  14. #define FORLR(i,l,r)for(s32 i=S32(l);i<S32(r);++i)
  15. #define FORN(i,n)FORLR(i,0,n)
  16. #define RFORIT(it,c)for(auto it=rbegin(c);it!=rend(c);++it)
  17. #define RFORLR(i,l,r)for(s32 i=S32(r)-1;i>=S32(l);--i)
  18. #define RFORN(i,n)RFORLR(i,0,n)
  19.  
  20. // Negated control flows.
  21. #define UNLESS(p)if(!(p))
  22. #define UNTIL(p)while(!(p))
  23.  
  24. // Test cases input and iteration.
  25. #define CASES s32 _t_;cin>>_t_;while(_t_--)
  26.  
  27. // Signed 32-bit size.
  28. #define SIZE(c)(S32(size(c)))
  29.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement