Typedef raktinis žodis C++ yra naudojamas esamiems duomenų tipams, vartotojo apibrėžtiems duomenų tipams ir prasmingesnio pavadinimo rodyklėms pavadinti. „Typedefs“ leidžia standartiniams duomenų tipams suteikti aprašomuosius pavadinimus, kurie taip pat gali padėti savarankiškai dokumentuoti kodą. Dažniausiai typedefs naudojami slapyvardžiui, tik jei iš anksto nustatytas pavadinimas yra per ilgas arba sudėtingas, kad būtų galima rašyti vėl ir vėl. Bereikalingas typedef naudojimas paprastai nėra gera praktika.
Sintaksė:
pakeisti katalogo pavadinimą linux
typedef>
Pavyzdys:
typedef std::vector vInt;>
Žemiau yra C++ programa, skirta įdiegti typedef
C++
// C++ Program to implement typedef> #include> > using> namespace> std;> > int> main()> {> > // Now we can make more vectors by using vInt> > typedef> std::vector<> int> >vInt;>> // vec1 is a vectorof type int> > vInt v;> > > v.push_back(190);> > v.push_back(180);> > v.push_back(10);> > v.push_back(10);> > v.push_back(27);> > > for> (> auto> X : v) {> > cout << X <<> ' '> ;> > }> > > return> 0;> }> |
>
>Išvestis
190 180 10 10 27>
Typedef programos C++
- Typedef C++ gali būti naudojamas iš anksto apibrėžtiems duomenų tipams ilgais pavadinimais pakeisti.
- Jis gali būti naudojamas su STL duomenų struktūromis, pvz Vektoriai, eilutės, žemėlapiai ir kt.
- typedef taip pat gali būti naudojamas su masyvais.
- Mes galime naudoti typedef su normalios rodyklės taip pat funkcijų rodyklės .
Typedef naudojimas su iš anksto nustatytais duomenų tipais
Typedef gali būti naudojamas slapyvardžiui priskirti iš anksto nustatytus duomenų tipus, pvz int, char, float, ir jų dariniai kaip ilgas, trumpas, pasirašytas, ir nepasirašytas. Tada naujasis slapyvardis gali būti naudojamas naujiems atitinkamų tipų kintamiesiems kurti.
Sintaksė:
typedef>
Pavyzdys:
C++
// C++ for using typedef with predefined data types> #include> > using> namespace> std;> > int> main()> {> > // ulli can now be used for making more> > // unsigned long long int type variables> > typedef> unsigned> long> long> int> ulli;> > // ulli used to make variables> > ulli a{ 1232133 };> > cout << a;> > return> 0;> }> |
>
>Išvestis
1232133>
Typedef naudojimas su STL duomenų struktūromis
typedef taip pat gali būti naudojamas su STL duomenų struktūros, Kaip Vektoriai, eilutės, žemėlapiai ir kt. Jei esame vieni iš tų, kurie nenori importuoti viso std vardų erdvė mūsų kode turime vėl ir vėl parašyti std::vector, std::string ir tt. Taigi, šiuo atveju tipodef naudojimas gali būti greitas būdas to išvengti ir išlaikyti mūsų kodą švarų ir skaitomą.
Sintaksė:
typedef>
Pavyzdys:
C++
// C++ Program to display usage for typedef with vectors> #include> #include> > int> main()> {> > // Now we can make more vectors by using vInt> > typedef> std::vector<> int> >vInt;>> > vInt vec1{ 1, 2, 3, 6, 2, 1 };> > > // Outputting the vector> > for> (> int> i = 0; i std::cout << vec1[i] <<' '; } return 0; }> |
>
>Išvestis
1 2 3 6 2 1>
Typedef naudojimas su masyvais
typedef gali būti naudojamas su masyvais naujesniems masyvams kurti (kaip ir naudojant juos su STL duomenų struktūromis). Galime lengvai sukurti naujus masyvus arba sudaryti masyvų masyvus naudodami typedef su masyvais, išlaikant mūsų kodą sklandžiai skaitomą.
Sintaksė:
typedef [ ]>
Po to < slapyvardis_vardas> dabar gali būti naudojamas kuriant < tipo masyvus duomenų_tipas> ir dydis .
C++
// C++ program to show use of typedef with arrays> #include> using> namespace> std;> > int> main()> {> > > typedef> int> arr[3];> > > // Making new 1D array> > > arr array1{ 1 , 1, 1};> > > > cout <<> 'Array output: '> > <<> '
'> ;> > for> (> int> i = 0; i <3; i++) {> > cout << array1[i] <<> ' '> ;> > }> > cout <<> '
'> ;> > > // Making new 2D array> > // Matrix is an array of arrays with size> > // ( 3 X 3 )> > arr matrix[3];> > > cout <<> 'Matrix output: '> > <<> '
'> ;> > > for> (> int> i = 0; i <3; i++) {> > for> (> int> j = 0; j <3; j++) {> > // Initializing the matrix> > matrix[i][j] = i * j;> > }> > }> > > // Outputting the matrix> > > for> (> int> i = 0; i <3; i++) {> > for> (> int> j = 0; j <3; j++) {> > cout << matrix[i][j] <<> ' '> ;> > }> > cout <<> '
'> ;> > }> > > return> 0;> }> |
>
>Išvestis
Array output: 1 1 1 Matrix output: 0 0 0 0 1 2 0 2 4>
Typedef naudojimas su rodyklėmis
Typedef taip pat galima naudoti su rodyklėmis. Greitesniam rodyklių kūrimui ir kodo skaitymui. Juos galime naudoti ir su duomenų, ir su funkcijų rodyklėmis.
(i) Naudojimas su duomenų rodyklėmis:
Žemiau yra sintaksė, pavyzdys ir šaltinio kodas, kaip naudoti typedef su duomenų rodyklėmis
Sintaksė:
typedef *>
Pavyzdys:
typedef int* iPtr; iPtr pointer1, pointer2;>
Žemiau yra programa, skirta naudoti typedef su duomenų rodyklėmis.
C++
// C++ Program to showcase the use of typedef> // with data pointer> > #include> using> namespace> std;> > int> main()> {> > int> a = 10;> > int> b = 20;> > // iPtr can now be used to create new pointers of type> > // int> > typedef> int> * iPtr;> > > iPtr pointer_to_a = &a;> > iPtr pointer_to_b = &b;> > > cout <<> 'a is: '> << *pointer_to_a <<> '
'> ;> > cout <<> 'b is: '> << *pointer_to_b <<> '
'> ;> > > return> 0;> }> |
>
>Išvestis
a is: 10 b is: 20>
(ii) Naudojimas su funkcijų rodyklėmis:
Žemiau yra sintaksė, pavyzdys ir kodas, rodantis typedef naudojimą su funkcijų rodyklėmis.
Sintaksė:
typedef < return_type>(*< alias_name>)(< parameter_type>,< parameter_type>, .... );>
Pavyzdys:
typedef int (*fun_ptr)(int, int); fun_ptr new_ptr = &function;>
Čia įdomus ptr dabar gali būti naudojamas kuriant daugiau funkcijų rodyklių. Tai bus aiškiau žemiau esančiame kode.
C++
#include> > // Normal pointer to a function> int> (*func_ptr1)(> int> ,> int> );> > // Using typedef with pointer to a function> typedef> int> (*func_ptr2)(> int> ,> int> );> > // Function to multiply two numbers> int> product(> int> u,> int> v) {> return> u * v; }> > int> main(> void> )> {> > func_ptr1 = &product;> > > // Using typedefed function pointer for creating new> > // function pointer 'new_func'> > func_ptr2 new_func_ptr = &product;> > > // Using normal pointer to a function> > int> x2 = (*func_ptr1)(3, 2);> > > // Using the new function pointer> > int> x1 = (*new_func_ptr)(2, 4);> > > std::cout << x1 << std::endl;> > std::cout << x2 << std::endl;> }> |
>
>Išvestis
8 6>
Čia func_ptr1 yra įprasta funkcijos rodyklė, o func_ptr2 yra typedef funkcijos rodyklė ir ji gali būti naudojama kuriant daugiau funkcijų rodyklių, naudojant 2 sveikuosius skaičius kaip argumentus ir grąžinant int tipą.
Pastaba: func_ptr2 nebegali būti naudojamas kaip nepriklausomas funkcijos rodyklė ir gali būti naudojamas tik kuriant naujas funkcijų rodykles, kurios gali nukreipti tik į funkciją grąžinančią int ir kaip parametrus paimdamos du int tipus.
shilpa shetty amžius