Prije svega morate znati o Predložak Makronaredbe i Vektori prije prelaska na sljedeću fazu!
- Predlošci su temelj generičkog programiranja koje uključuje pisanje koda na način koji je neovisan o određenoj vrsti.
- Makro je fragment koda koji je dobio ime. Kad god se ime koristi, ono se zamjenjuje sadržajem makronaredbe.
- Vektori su isti kao dinamički nizovi s mogućnošću automatske promjene veličine kada se element umetne ili izbriše, a njihovim pohranjivanjem automatski upravlja spremnik.
Tako da možemo koristiti ove moćne alate za pisanje našeg koda na učinkovit način.
Neki od cool trikova koji se mogu koristiti u natjecateljskom programiranju navedeni su kako slijedi:
// C++ program to demonstrate range based for // loops for accessing vector and array elements #include #include using namespace std; int main() { // Create a vector object that // contains 5 elements vector<int> vec = {0 1 2 3 4}; // Type inference by reference using auto. // Range based loops are preferred when no // modification is needed in value for (const auto &value : vec) cout << value << ' '; cout << 'n'; // Basic 5 element integer array int array[]= {1 2 3 4 5}; for (const auto &value: array) cout << value << ' '; return 0; }
Izlaz:
0 1 2 3 4 1 2 3 4 5
#include template<typename T> void printList(std::initializer_list<T> text) { for (const auto & value: text) std::cout << value << ' '; } // Driver program int main() { // Initialization list printList( {'One' 'Two' 'Three'} ); return 0; }
Izlaz:
One Two Three
#include // Call by reference is used in x template<typename T typename U> static inline void amin(T &x U y) { if (y < x) x = y; } // call by reference is used in x template<typename T typename U> static inline void amax(T &x U y) { if (x < y) x = y; } // Driver program to find the Maximum and Minimum value int main() { int max_val = 0 min_val = 1e5; int array[]= {4 -5 6 -9 2 11}; for (auto const &val: array) // Same as max_val = max (max_val val) // Same as min_val = min (min_valval) amax(max_val val) amin (min_val val); std::cout << 'Max value = ' << max_val << 'n' << 'Min value = ' << min_val; return 0; }
Izlaz:
Max value = 11 Min value = -9
#include template<typename T> void scan(T &x) { x = 0; bool neg = 0; register T c = getchar(); if (c == '-') neg = 1 c = getchar(); while ((c < 48) || (c > 57)) c = getchar(); for ( ; c < 48||c > 57 ; c = getchar()); for ( ; c > 47 && c < 58; c = getchar() ) x= (x << 3) + ( x << 1 ) + ( c & 15 ); if (neg) x *= -1; } template<typename T> void print(T n) { bool neg = 0; if (n < 0) n *= -1 neg = 1; char snum[65]; int i = 0; do { snum[i++] = n % 10 + '0'; n /= 10; } while (n); --i; if (neg) putchar('-'); while (i >= 0) putchar(snum[i--]); putchar('n'); } // Driver Program int main() { int value; // Taking input scan(value); // Printing output print(value); return 0; }
Input: 756 Output: 756
Da biste saznali više o brzom unosu i izlazu Pročitajte ovaj članak .
#include using namespace std; #define rep(in) for (i = 0; i < n; ++i) #define REP(ikn) for (i = k; i <= n; ++i) #define REPR(ikn) for (i = k; i >= n; --i) // Driver program to test above Macros int main() { int i; int array[] = {4 5 6 9 22 11}; int size= sizeof(array)/sizeof(array[0]); // Default 0 index based loop rep(i size) cout << array[i] << ' '; cout<<'n'; // Starting index based loop REP(i 1 size-1) cout << array[i] << ' '; cout<<'n'; // Reverse for loop REPR(i size-10) cout << array[i] << ' '; return 0; }
Izlaz
4 5 6 9 22 11 5 6 9 22 11 11 22 9 6 5 4
std::ios_base::sync_with_stdio(false);
U konačnici pomoću ovih pametnih trikova možete jednostavno napisati kod u minimalnoj količini vremena i riječi.