Efektyvus C/C++ kodo rašymas konkurencinio programavimo metu
Pirmiausia turite žinoti apie Šablonas Makrokomandos ir Vektoriai prieš pereinant į kitą etapą!
- Šablonai yra bendro programavimo pagrindas, apimantis kodo rašymą tokiu būdu, kuris nepriklauso nuo jokio konkretaus tipo.
- Makrokomandas yra kodo fragmentas, kuriam suteiktas pavadinimas. Kai naudojamas pavadinimas, jis pakeičiamas makrokomandos turiniu.
- Vektoriai yra tokie patys kaip dinaminiai masyvai, turintys galimybę automatiškai keisti dydį, kai elementas įterpiamas arba ištrintas, o jų saugojimą automatiškai tvarko konteineris.
Taigi galime naudoti šiuos galingus įrankius savo kodui rašyti efektyviai.
Kai kurios puikios gudrybės, kurios gali būti naudojamos konkurenciniam programavimui, pateikiamos taip:
// 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 ; }
Išvestis:
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 ; }
Išvestis:
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 ; }
Išvestis:
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
Norėdami sužinoti daugiau apie greitą įvestį ir išvestį Perskaitykite šį straipsnį .
#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 -1 0 ) cout < < array [ i ] < < ' ' ; return 0 ; }
Išvestis
4 5 6 9 22 11 5 6 9 22 11 11 22 9 6 5 4
std::ios_base::sync_with_stdio(false);
Galiausiai naudodamiesi šiais išmaniaisiais triukais galite lengvai parašyti kodą per minimalų laiko ir žodžių kiekį.
Jums Gali Patikti
Top Straipsniai
Kategorija
Įdomios Straipsniai