Skip to content

Instantly share code, notes, and snippets.

@gahr
Created December 31, 2021 08:16
Show Gist options
  • Select an option

  • Save gahr/abb9f7faa0054c70fc7c2c6c851c5824 to your computer and use it in GitHub Desktop.

Select an option

Save gahr/abb9f7faa0054c70fc7c2c6c851c5824 to your computer and use it in GitHub Desktop.
#define a_capo "\n"
#define buttaci <<
#define chicchessia auto
#define fine ;
#define i_dati_di data
#define incrementa(cosa) ++(cosa)
#define intero int
#define invariabile const
#define invariabili const
#define lettera char
#define lettere char
#define modello template
#define nel
#define nell
#define operatore operator
#define per_ogni for
#define poi ;
#define prendi(...) * __VA_ARGS__
#define primo(elemento) elemento.first
#define principale main
#define puntatore_a(...) __VA_ARGS__ *
#define referenza_a(...) __VA_ARGS__ &
#define relazione_disordinata unordered_map
#define ridimensiona resize
#define ritorna return
#define schiera_di(...) initializer_list<__VA_ARGS__>
#define secondo(elemento) elemento.second
#define spazio_di_nomi namespace
#define tipo typename
#define tra :
#define usando using
#define uscita cout
#define veramente_invariabile constexpr
#include <initializer_list>
#include <iostream>
#include <unordered_map>
usando spazio_di_nomi std fine
relazione_disordinata<lettera, intero> conta_occorrenze(invariabile referenza_a(schiera_di(puntatore_a(lettere invariabili))) frase)
{
relazione_disordinata<lettera, intero> occorrenze fine
per_ogni (puntatore_a(lettere invariabili) l{ prendi(i_dati_di(frase)) } poi prendi(l) poi incrementa(l))
{
incrementa(occorrenze[prendi(l)]) fine
}
ritorna occorrenze fine
}
modello<tipo R>
R& operatore<<(referenza_a(R) ruscello, referenza_a(invariabile schiera_di(puntatore_a(lettere invariabili))) frase)
{
per_ogni (puntatore_a(lettera invariabile) l{ prendi(i_dati_di(frase)) } poi prendi(l) poi incrementa(l))
{
nel ruscello buttaci prendi(l) fine
}
ritorna ruscello fine
}
intero principale()
{
veramente_invariabile schiera_di(puntatore_a(lettere invariabili)) frase{ "buona fine e buon inizio" } fine
relazione_disordinata<lettera, intero> invariabile occorrenze{ conta_occorrenze(frase) } fine
nell uscita
buttaci "nella frase \""
buttaci frase
buttaci "\""
buttaci a_capo fine
per_ogni(referenza_a(chicchessia invariabile) elemento tra occorrenze) {
nell uscita
buttaci "la lettera <"
buttaci primo(elemento)
buttaci "> occorre "
buttaci secondo(elemento)
buttaci " volte"
buttaci a_capo fine
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment