Manipulação de Pares
Acesso Básico aos Elementos
std::pair<int, string> dataPair(42, "LabEx");
// Acessando elementos
int value = dataPair.first;
string text = dataPair.second;
Técnicas de Modificação
Atribuição Direta
std::pair<int, string> pair(10, "Inicial");
pair.first = 20;
pair.second = "Atualizado";
Operação Swap
std::pair<int, string> pair1(1, "Primeiro");
std::pair<int, string> pair2(2, "Segundo");
std::swap(pair1, pair2); // Troca os pares inteiros
Operações de Comparação
graph LR
A[Comparação de Pares] --> B[== Igualdade]
A --> C[!= Desigualdade]
A --> D[< Menor que]
A --> E[> Maior que]
Exemplo de Comparação
std::pair<int, string> p1(10, "A");
std::pair<int, string> p2(10, "B");
bool isEqual = (p1 == p2); // Compara primeiro, depois segundo
bool isLess = (p1 < p2);
Manipulação Avançada
Ligação Estruturada (C++17)
std::pair<int, string> pair(100, "Moderno");
auto [número, texto] = pair;
| Operação |
Método |
Exemplo |
| Tie |
std::tie |
std::tie(x, y) = pair |
| Make Pair |
std::make_pair |
auto newPair = std::make_pair(x, y) |
Casos de Uso em Algoritmos
vector<pair<int, string>> data = {
{3, "Três"},
{1, "Um"},
{2, "Dois"}
};
// Ordenando pares
std::sort(data.begin(), data.end());
Considerações de Desempenho
- Contêiner leve
- Sobrecarga mínima
- Eficiente para conjuntos de dados pequenos
- Suporta semântica de movimentação
Dominar a manipulação de pares permite escrever código C++ mais expressivo e eficiente em seus projetos LabEx.