C++ Data Structures

By | October 29, 2021
C++ Data Structures

Using an Array Data Structure, we can combine many data values of similar data types, but what if we want a data structure which can hold different values of different data types, to solve this problem in C++ we have another Data Structure known as Structure.

What is Structure in C++?

In C++ the structure is a User-Defined Data Structure, which can be used to hold groups items of different data types.

Vamware

To define a structure in C++ we use the struct keyword, and variables reside in a structure known as Structure members.

Create a Structure

The struct keyword is used to create the structure and the items it consists known as Members or Fields of Structures.

Structure Syntax:
struct structureName
{
member1;
member2;
member3;
};

There are two types of Members in the C++ structure:

  • Data Member
  • Member Function

Data Members are the variables which are inside the Structure block.

Member Functions are the functions inside the Structure Block.

Accessing Structure Member

Once we have defined a structure with its members, we need to access it all the data, and to access the members of the structure we use the member access operator(.), which is a dot symbol. First, we need to define the Structure variable using the Structure Name and then using the structure variable and member access operator we can access any member of the structure.

Example

#include <iostream>
#include <cstring>
using namespace std;

    //defining a structure
struct Students 
   {
      char  full_name[50]; // data members
      int  age;
      char  subject[100];
   };

int main()
    { 
         struct Students sam; // sam is the structure variable
         strcpy(sam.full_name, "Sam Wick");  // full_name is the string data type so we have used the string funciton
         sam.age =10;
         strcpy(sam.subject,"Science");
         cout<<"The Full name of sam is: "<<sam.full_name;
         cout<<endl;
         cout<<"Sam Age is: "<< sam.age;
         return 0;
    }

Output

The Full name of sam is: Sam Wick
Sam Age is: 10

Behind the Code

In this example first, we define a structure outside the main() function. And then using the struct keyword and Students name we create a new variable sam. Now sam is a structure student type data structure which can access any data member of Student structure.

We can also make more than one Structure variable if we want.

Structure Functions

We can also define a user-defined function inside the structure block, and like we access the data member we can access the Member Functions of the Structure.

Example

 #include <iostream>
#include <cstring>
using namespace std;

    //defining a structure
    struct Students 
         {
         char  full_name[50];
         int  age;
         char  subject[100];
      
         void show_detail()
            {
                cout<<" Student Name is: "<<full_name;
                cout<<endl;
                cout<<"Student age is: "<<age;
                cout<<endl;
                cout<<"Student subject is: "<<subject;
             }
         };

int main()
    {
        struct Students sam; // sam is the structure variable
        strcpy(sam.full_name, "Sam Wick");  // full_name is the string data type so we have used the string funciton
        sam.age= 10; // setting the age of sam varible
        strcpy(sam.subject,"Science");  // setting the sam variable subject name
   
        //print student detail
        sam.show_detail(); // calling the structure member function
        return 0;
    }

Output

Student Name is: Sam Wick
Student age is: 10
Student subject is: Science

Behind the Code

In this example, we have defined a member function inside the struct Students block, and using the sam.show_detail() statement we called that function inside the main() function.

Structure Pointer

Like other basic data types, we can also use pointers with structure. But if we use a pointer with the structure we use (->) symbol as the member access operator instead of the dot (.) operator.

Example

#include <iostream>
#include <cstring>
using namespace std;

//defining a structure

struct Students 
   {
     char  full_name[50];
   };
 
int main()
    {
           struct Students sam; // sam is the structure variable
            
           strcpy(sam.full_name, "Sam Wick");

           struct Students* sam_wick = &sam ; // the pointer variable sam_wick is also a structure variable
         
           cout<<"The full name of Student is: "<< sam_wick->full_name;  // here we have used -> operator because sam_wick is a structure pointer variable
           return 0;
    }

Output

The full name of Student is: Sam Wick

Behind the Code

Here sam is the structure variable, like other variables it also stores at some memory location. Now, here we have used the struct Students* sam_wick = &sam ; statement, which basically signifies that sam_wick is a pointer variable which holds the address of sam variable. We all know that pointer variable should be of similar data type which addresses it holding that’s why sam_wick is also a struct Students variable.

In structure, if we want to access the data member of the structure using a pointer variable than we use the -> symbol as a member access operator.

Structure Quick summary

  • The structure is a data structure which can hold different elements of different data types.
  • We can also define functions inside the structure variable.
  • The variable inside the structure known as Data members whereas the functions known as Member functions.
  • To access the data member and Member functions of the structure we use the structure variable with the member access operator.

People are also reading:

Leave a Reply

Your email address will not be published. Required fields are marked *