Welcome to C++ Learning

C++ is a powerful and versatile programming language widely used for developing applications, games, and system software. It's known for its efficiency and performance.

Getting Started

To start learning C++, you'll need a C++ compiler like GCC or Visual C++. You can write C++ code in a plain text editor and compile it using a compiler.

Hello World Program

Let's start with a simple "Hello, World!" program in C++:

#include <iostream>

int main() {
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

This program prints "Hello, World!" to the console. The #include <iostream> line includes the standard I/O library.

To compile and run this program, follow these steps:

  1. Save the code to a file with a ".cpp" extension (e.g., hello.cpp).
  2. Open your command prompt or terminal.
  3. Navigate to the directory where your C++ file is located.
  4. Compile the code using your C++ compiler (e.g., g++ hello.cpp -o hello).
  5. Run the compiled program (e.g., ./hello).

Learn C++ Fundamentals

Conditional Statements (if-else)

Conditional statements are used to make decisions in your program:

int x = 10;

if (x > 5) {
    std::cout << "x is greater than 5" << std::endl;
} else if (x == 5) {
    std::cout << "x is equal to 5" << std::endl;
} else {
    std::cout << "x is less than 5" << std::endl;
}

Loops (for, while, do-while)

Loops are used to repeatedly execute a block of code:

// For Loop
for (int i = 0; i < 5; i++) {
    std::cout << "Iteration " << i << std::endl;
}

// While Loop
int i = 0;
while (i < 5) {
    std::out << "Iteration " << i << std::endl;
    i++;
}

// Do-While Loop
int i = 0;
do {
    std::out << "Iteration " << i << std::endl;
    i++;
} while (i < 5);

Arrays

Arrays store multiple values of the same data type:

int numbers[5] = {1, 2, 3, 4, 5};

Pointers

Pointers are variables that store memory addresses:

int x = 10;
int* ptr = &x;

std::out << *ptr << std::endl; // Prints the value of x (10)

Functions

Functions allow you to encapsulate blocks of code for reuse:

int add(int a, int b) {
    return a + b;
}

Recursion, Strings, STL, and File Handling

C++ offers advanced features like recursion, string manipulation, the Standard Template Library (STL) for data structures and algorithms, and file handling for input and output operations. These topics require in-depth explanations and examples, making them suitable for more advanced learning.

Standard Template Library (STL)

The Standard Template Library (STL) is a powerful set of C++ template classes that provide general-purpose classes with templates, implementing many popular and commonly used algorithms and data structures. Here are some of the essential components of the STL:

1. Vector

A vector is a dynamic array that can grow or shrink in size. It's similar to an array but offers additional functionalities like resizing and automatic memory management. Here's an example of using vectors:

#include <vector>
#include <iostream>

int main() {
    // Create a vector of integers
    std::vector<int> numbers;

    // Add elements to the vector
    numbers.push_back(10);
    numbers.push_back(20);
    numbers.push_back(30);

    // Access elements
    for (int i = 0; i < numbers.size(); i++) {
        std::cout << numbers[i] << " ";
    }

    return 0;
}

2. Map

A map is a collection of key-value pairs. It allows you to store and retrieve values based on unique keys. Maps are typically implemented as binary search trees, providing efficient key-based retrieval. Here's an example of using maps:

#include <map>
#include <iostream>

int main() {
    // Create a map of string to int
    std::map<std::string, int> ages;

    // Add key-value pairs
    ages["Alice"] = 25;
    ages["Bob"] = 30;
    ages["Charlie"] = 35;

    // Access values by key
    std::cout << "Alice's age: " << ages["Alice"] << std::endl;

    return 0;
}

3. Set

A set is a collection of unique elements. It doesn't allow duplicate values, making it useful for maintaining a unique set of items. Here's an example of using sets:

#include <set>
#include <iostream>

int main() {
    // Create a set of integers
    std::set<int> uniqueNumbers;

    // Add elements to the set
    uniqueNumbers.insert(10);
    uniqueNumbers.insert(20);
    uniqueNumbers.insert(10); // This won't be added

    // Iterate through the set
    for (int number : uniqueNumbers) {
        std::cout << number << " ";
    }

    return 0;
}

4. Pair

A pair is a simple structure that holds two values. It is often used for returning two values from a function or for simple key-value associations. Here's an example of using pairs:

#include <utility>
#include <iostream>

int main() {
    std::pair<std::string, int> person("Alice", 25);

    std::cout << "Name: " << person.first << ", Age: " << person.second << std::endl;

    return 0;
}

5. File Handling

C++ provides file handling capabilities to read from and write to files. You can use ifstream and ofstream for file input and output operations. Here's a basic example of writing to a file:

#include <fstream>
#include <iostream>

int main() {
    std::ofstream outputFile("example.txt");
    if (outputFile.is_open()) {
        outputFile << "Hello, World!" << std::endl;
        outputFile.close();
    } else {
        std::cerr << "Failed to open the file." << std::endl;
    }

    return 0;
}

The STL is a key part of C++ and is widely used for various data manipulation tasks, providing efficient and easy-to-use tools for working with data structures and algorithms.

In this introductory guide, we've covered the basics of C++. However, mastering the usage of these STL components, along with more advanced features, requires further exploration and practice.