C++ función back de <array>

C++ clase de contenedor <array>


En las diversas operaciones de array,backes una función muy práctica, utilizada paraobtener el último elemento。

backes una función miembro de la clase contenedor, utilizada paradevolver el último elemento del contenedor. Equivale aat(size()-1)ooperator[](size()-1), pero su semántica es más clara.

backProporciona una forma intuitiva de acceder al elemento final del contenedor.

Definición de la palabra: backsignifica "detrás", es decir, obtener el último elemento (el que está al final).


Sintaxis básica y parámetros

backes una función miembro de la clase contenedor, su invocación es muy directa, no requiere ningún parámetro.

Formato de sintaxis

reference back();
const_reference back() const;

Descripción de parámetros

  • Parámetro: sin parámetros
    • backNo acepta ningún parámetro.

Descripción de la función

  • Valor de retorno: devuelve lareferencia del último elemento del contenedor. Si el contenedor es constante, devuelve una referencia constante.
  • Efecto: devuelve el último elemento del contenedor (índicesize()-1donde se encuentra el elemento).
  • Nota: array no puede estar vacío, por lo que llamar abackes seguro.

Ejemplo

Vamos a dominar completamente, mediante una serie de ejemplos,backel uso de.

Ejemplo 1: Uso básico - Obtener el último elemento

Ejemplo

#include <iostream>
#include <array>

int main() {
    // 1. Crear un array e inicializarlo
    std::array<int, 5> numbers = {10, 20, 30, 40, 50};

    std::cout << "El tamaño del array es: " << numbers.size() << std::endl;

    // 2. Usar back para obtener el último elemento
    std::cout << "Último elemento (back): " << numbers.back() << std::endl;
    std::cout << "Usando at(size()-1): " << numbers.at(numbers.size() - 1) << std::endl;
    std::cout << "Usando [size()-1]: " << numbers[numbers.size() - 1] << std::endl;

    return 0;
}

Resultado esperado:

array的大小是: 5
最后一个元素 (back): 50
使用 at(size()-1): 50
使用 [size()-1]: 50

Análisis del código:

  1. numbers.back()Devuelve el último elemento50。
  2. Este ynumbers.at(numbers.size()-1)ynumbers[numbers.size()-1]devuelven el mismo valor, pero la semántica es más clara.

Ejemplo 2: Modificar el valor del último elemento

backDevuelve una referencia, por lo que se puede usar para modificar el valor del elemento.

Ejemplo

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

int main() {
    std::array<std::string, 3> tasks = {"Aprender C++", "Hacer la tarea", "Leer documentación"};

    std::cout << "Antes de modificar, la última tarea: " << tasks.back() << std::endl;

    // Usar back() para obtener la referencia y modificar el elemento
    tasks.back() = "Completar proyecto";

    std::cout << "Después de modificar, la última tarea: " << tasks.back() << std::endl;

    return 0;
}

Resultado esperado:

Antes de la modificación, última tarea: leer el documento  
Después de la modificación, última tarea: completar el proyecto

Análisis del código:

  • tasks.back() = "完成项目";Se modificó el valor del último elemento mediante la referencia.
  • back()Se devuelve una referencia lvalue modificable.

Ejemplo 3: Usar back junto con sort para obtener el máximo y el mínimo

Después de ordenar,back()devuelve el valor máximo.

Ejemplo

#include <iostream>
#include <array>
#include <algorithm>

int main() {
    std::array<int, 5> numbers = {30, 10, 50, 20, 40};

    std::cout << "Antes de ordenar: ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    // Ordenar
    std::sort(numbers.begin(), numbers.end());

    std::cout << "Después de ordenar: ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    std::cout << "Valor mínimo (front): " << numbers.front() << std::endl;
    std::cout << "Valor máximo (back): " << numbers.back() << std::endl;

    return 0;
}

Resultado esperado:

排序前: 30 10 50 20 40
排序后: 10 20 30 40 50
最小值 (front): 10
最大值 (back): 50

Análisis del código:

  • Después de ordenar,front()devuelve el valor mínimo,back()devuelve el valor máximo.
  • Esta es una forma sencilla de obtener el valor máximo/mínimo.

C++ clase de contenedor <array>

Otras extensiones