logo

typedef у C++

Ключове слово typedef у C++ використовується для псевдонімів існуючих типів даних, типів даних, визначених користувачем, і вказівників на більш значущі назви. Typedefs дозволяє давати описові імена стандартним типам даних, що також може допомогти вам самостійно документувати свій код. Переважно typedef використовуються для псевдонімів, лише якщо попередньо визначене ім’я занадто довге або складне для повторного запису. Непотрібне використання typedef, як правило, не є хорошою практикою.

Синтаксис:



де налаштування браузера
typedef>

приклад:

typedef std::vector vInt;>

Нижче наведено програму C++ для реалізації 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;> }>

>

>

Вихід

190 180 10 10 27>

Застосування typedef в C++

  • typedef у C++ можна використовувати для псевдонімів попередньо визначених типів даних з довгими іменами.
  • Його можна використовувати зі структурами даних STL, наприклад Вектори, рядки, карти тощо.
  • typedef також можна використовувати з масивами.
  • Ми можемо використовувати typedef з нормальні покажчики так добре як покажчики функцій .

Використання typedef із попередньо визначеними типами даних

Typedef можна використовувати для псевдонімів попередньо визначених типів даних, наприклад int, char, float, і їх похідні, як довгий, короткий, підписаний, і без підпису. Потім новий псевдонім можна використовувати для створення нових змінних відповідних типів.

Синтаксис:

typedef>

приклад:

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;> }>

>

>

Вихід

1232133>

Використання typedef зі структурами даних STL

typedef також можна використовувати з Структури даних STL, люблю Вектори, рядки, карти тощо. Якщо ми з тих, хто не хоче імпортувати все std простір імен у нашому коді, тоді нам потрібно знову і знову писати std::vector, std::string тощо. Таким чином, використання typedef у цьому випадку може бути швидким способом запобігти цьому та зберегти наш код чистим і читабельним.

Синтаксис:

typedef>

приклад:

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;> >// vec1 is a vectorof type int> >vInt vec1{ 1, 2, 3, 6, 2, 1 };> > >// Outputting the vector> >for> (>int> i = 0; i std::cout << vec1[i] <<' '; } return 0; }>

>

>

Вихід

1 2 3 6 2 1>

Використання typedef з масивами

typedef можна використовувати з масивами для створення нових масивів (подібно до використання їх із структурами даних STL). Ми можемо легко створювати нові масиви або створювати масиви масивів за допомогою typedef із масивами, зберігаючи при цьому наш код читабельним і бездоганним.

Синтаксис:

typedef [ ]>

Після цього < псевдонім> тепер можна використовувати для створення масивів типу < тип_даних> і розмір .

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;> }>

шилпа шетті вік
>

>

Вихід

Array output: 1 1 1 Matrix output: 0 0 0 0 1 2 0 2 4>

Використання typedef з покажчиками

Typedef також можна використовувати з покажчиками. Для швидшого створення покажчиків, а також збереження коду читабельним. Ми можемо використовувати їх як з покажчиками на дані, так і з покажчиками на функції.

(i) Використання з покажчиками даних:

Нижче наведено синтаксис, приклад і вихідний код для використання typedef із покажчиками на дані

Синтаксис:

typedef *>

приклад:

typedef int* iPtr; iPtr pointer1, pointer2;>

Нижче наведено програму для використання typedef із покажчиками даних.

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;> }>

>

>

Вихід

a is: 10 b is: 20>

(ii) Використання з покажчиками на функції:

Нижче наведено синтаксис, приклад і код для відображення використання typedef із покажчиками на функції.

Синтаксис:

typedef < return_type>(*< alias_name>)(< parameter_type>,< parameter_type>, .... );>

приклад:

typedef int (*fun_ptr)(int, int); fun_ptr new_ptr = &function;>

Тепер fun ptr можна використовувати для створення додаткових покажчиків на функції. Це буде зрозуміліше в коді нижче.

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;> }>

>

>

Вихід

8 6>

Тут func_ptr1 є звичайним покажчиком на функцію, тоді як func_ptr2 є покажчиком на функцію typedef, і його можна використовувати для створення додаткових покажчиків на функції, які приймають 2 цілі числа як аргументи з типом повернення int.

Примітка: func_ptr2 більше не можна використовувати як незалежний покажчик на функцію, і його можна використовувати лише для створення нових покажчиків на функції, які можуть вказувати лише на функцію, яка повертає int і приймає два типи int як свої параметри.