C++ <array> front function

C++ container class <array>


Among the various operations on array,frontis a very simple function used toGet the first element。

frontis a member function of the container class, used toreturns the first element of the container. It is equivalent toat(0)oroperator[](0), but with clearer semantics.

frontprovides an intuitive way to access the first element of the container.

Word Definitions: frontmeans "front", i.e., get the first (frontmost) element.


Basic syntax and parameters

frontis a member function of the container class; calling it is very direct and requires no parameters.

Syntax format

reference front();
const_reference front() const;

Parameter description

  • Parameter: No parameters
    • fronttakes no parameters.

Function description

  • Return Value: returns a reference to the first element of the containerReference. If the container is a const container, it returns a const reference.
  • Effect: Returns the first element of the container (the element at index 0).
  • Note: array cannot be empty, so callingfrontIt is safe.

Example

Let us thoroughly master through a series of examples,frontUsage.

Example 1: Basic usage - Getting the first element

Example

#include <iostream>
#include <array>

int main() {
    // 1. Create an array and initialize it
    std::array<int, 5> numbers = {10, 20, 30, 40, 50};

    std::cout << "The size of array is: " << numbers.size() << std::endl;

    // 2. Use front to get the first element
    std::cout << "The first element (front): " << numbers.front() << std::endl;
    std::cout << "Use at(0): " << numbers.at(0) << std::endl;
    std::cout << "Use [0]: " << numbers[0] << std::endl;

    return 0;
}

Expected output:

array的大小是: 5
第一个元素 (front): 10
使用 at(0): 10
使用 [0]: 10

Code analysis:

  1. numbers.front()Return the first element10。
  2. It andnumbers.at(0)andnumbers[0]returns the same value, but with clearer semantics.

Example 2: Modifying the value of the first element

frontIt returns a reference, so it can be used to modify the value of the element.

Example

#include <iostream>
#include <array>
#include <string>

int main() {
    std::array<std::string, 3> names = {"Alice", "Bob", "Charlie"};

    std::cout << "Before modification, the first element: " << names.front() << std::endl;

    // Use front() to get a reference and modify the element
    names.front() = "Andrew";

    std::cout << "After modification, the first element: " << names.front() << std::endl;

    return 0;
}

Expected output:

修改前,第一个元素: Alice
修改后,第一个元素: Andrew

Code analysis:

  • names.front() = "Andrew";The value of the first element was modified through the reference.
  • front()returns a modifiable lvalue reference.

Example 3: Using front to implement the front of a queue

frontIt can be used to implement data structures similar to a queue.

Example

#include <iostream>
#include <array>
#include <string>

// Simple fixed-size queue (implemented with array)
class FixedQueue {
private:
    std::array<std::string, 100> data;
    size_t frontIndex = 0;
    size_t backIndex = 0;
    size_t count = 0;

public:
    // Enqueue
    bool enqueue(const std::string& item) {
        if(count >= 100) return false;
        data[backIndex] = item;
        backIndex = (backIndex + 1) % 100;
        ++count;
        return true;
    }

    // Get the front element
    std::string front() const {
        return data[frontIndex];
    }

    // Check whether the queue is empty
    bool empty() const {
        return count == 0;
    }

    // Get the queue size
    size_t size() const {
        return count;
    }
};

int main() {
    FixedQueue q;

    q.enqueue("User A");
    q.enqueue("User B");
    q.enqueue("User C");

    std::cout << "Queue size: " << q.size() << std::endl;

    while(!q.empty()) {
        std::cout << "Processing: " << q.front() << std::endl;
    }

    return 0;
}

Expected output:

队列大小: 3
处理: 用户A
处理: 用户B
处理: 用户C

Code analysis:

  • front()Used to get the front element (the element waiting to be processed).
  • This example demonstrates how to usefrontImplements a first-in, first-out (FIFO) queue.

C++ container class <array>

other extensions