Ordenar con rangos en C++
El std::ranges::sort de C++20 toma el contenedor completo y cualquier orden que le des.
#include <algorithm>
#include <functional>
#include <string>
#include <vector>
void sort_both(std::vector<int>& nums, std::vector<std::string>& words) {
std::ranges::sort(nums);
std::ranges::sort(nums, std::greater<>{}); // descending
std::ranges::sort(words, [](const std::string& a, const std::string& b) {
return a.size() < b.size();
});
}
Cómo funciona
std::ranges::sort(nums)ordena de forma ascendente sin ningún par de iteradores a la vista.- Pasar
std::greater<>{}como comparador voltea la misma llamada a descendente. - Una lambda que compara
a.size()conb.size()ordena las cadenas de la más corta en adelante.
Palabras clave y builtins usados aquí
constintreturnvoid
El intento, en números
- Líneas
- 12
- Caracteres a escribir
- 344
- Tokens
- 118
- Ritmo de tres estrellas
- 70 tpm
Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 101 segundos.
Paso 1 de 3 en Algoritmos; paso 13 de 27 en Fundamentos del lenguaje.