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 (índice
size()-1donde se encuentra el elemento). - Nota: array no puede estar vacío, por lo que llamar a
backes 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 <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:
numbers.back()Devuelve el último elemento50。- Este y
numbers.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 <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 <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.
Otras extensiones