Manipulación de Pares
Acceso Básico a Elementos
std::pair<int, string> dataPair(42, "LabEx");
// Accediendo a los elementos
int value = dataPair.first;
string text = dataPair.second;
Técnicas de Modificación
Asignación Directa
std::pair<int, string> pair(10, "Inicial");
pair.first = 20;
pair.second = "Actualizado";
Operación Swap
std::pair<int, string> pair1(1, "Primero");
std::pair<int, string> pair2(2, "Segundo");
std::swap(pair1, pair2); // Intercambiar pares completos
Operaciones de Comparación
graph LR
A[Comparación de Pares] --> B[== Igualdad]
A --> C[!= Desigualdad]
A --> D[< Menor que]
A --> E[> Mayor que]
Ejemplo de Comparación
std::pair<int, string> p1(10, "A");
std::pair<int, string> p2(10, "B");
bool isEqual = (p1 == p2); // Compara primero, luego segundo
bool isLess = (p1 < p2);
Manipulación Avanzada
Encadenamiento Estructurado (C++17)
std::pair<int, string> pair(100, "Moderno");
auto [número, texto] = pair;
| Operación |
Método |
Ejemplo |
| Tie |
std::tie |
std::tie(x, y) = pair |
| Crear par |
std::make_pair |
auto newPair = std::make_pair(x, y) |
Casos de Uso en Algoritmos
vector<pair<int, string>> data = {
{3, "Tres"},
{1, "Uno"},
{2, "Dos"}
};
// Ordenar pares
std::sort(data.begin(), data.end());
Consideraciones de Rendimiento
- Contenedor ligero
- Sobrecarga mínima
- Eficiente para conjuntos de datos pequeños
- Soporta semántica de movimiento
Dominar la manipulación de pares te permite escribir código C++ más expresivo y eficiente en tus proyectos de LabEx.