Fatti:
A.
A.a. La A._ è attiva nel settore della consulenza di analisi dei rischi nell'ambito della gestione patrimoniale.
La C._ SA è specializzata nella consulenza e nei servizi relativi all'organizzazione e alla gestione di imprese, in particolare nel settore bancario, nonché nello studio, nella creazione e nello sviluppo di soluzioni di software. B._ ne è amministratore unico, mentre D._ ne è il direttore. Tra i dipendenti di questa società figurano E._ e, fino al mese di maggio del 2020, F._.
A.b. Nel mese di maggio del 2014 la A._ e la C._ SA hanno sottoscritto un contratto di outsourcing con durata fino al 30 aprile 2017, in cui la seconda società affidava alla prima la gestione di un programma di calcolo del rischio, della performance e della valutazione di strumenti finanziari. Nel corso del 2016, la A._ ha rescisso il contratto e avanzato pretese nei confronti della controparte, che quest'ultima ha contestato.
B.
Il 1° marzo 2017 la A._ ha presentato al Ministero pubblico del Cantone Ticino una denuncia penale nei confronti di ignoti per i reati di acquisizione illecita di dati (<ref-law>) e di accesso indebito a un sistema per l'elaborazione di dati (<ref-law>). Secondo la denunciante, dei collaboratori di C._ SA si sarebbero introdotti indebitamente nel suo sistema informatico e le avrebbero sottratto dei dati.
C.
C.a. Dopo una serie di atti che non occorre qui evocare, con due decreti di accusa del 18 ottobre 2019 il Procuratore pubblico (PP) ha posto F._ e E._ in stato di accusa dinanzi alla Pretura penale del Cantone Ticino, ritenendoli colpevoli di acquisizione illecita di dati e di accesso indebito a un sistema per l'elaborazione di dati. Gli imputati si sono opposti ai decreti di accusa.
C.b. Con un'ulteriore decisione del 18 ottobre 2019, il PP ha per contro decretato l'abbandono del procedimento penale nei confronti di B._ e di D._ per le stesse ipotesi di reato.
D.
D.a. La A._ ha impugnato il decreto di abbandono con un reclamo del 31 ottobre 2019 alla Corte dei reclami penali del Tribunale d'appello (CRP), chiedendo di annullarlo limitatamente a B._.
D.b. Con decisione del 19 febbraio 2020, il Presidente della CRP, preso atto delle opposizioni interposte da F._ e da E._ contro i decreti di accusa, ha sospeso la procedura di reclamo fino al passaggio in giudicato dei procedimenti nei confronti di detti imputati. Nella decisione di sospensione, il Presidente della CRP ha rilevato che i procedimenti pendenti presso la Pretura penale riguardavano il medesimo complesso di fatti, sicché l'esito degli stessi avrebbe potuto influire su quello oggetto della procedura di reclamo contro il decreto di abbandono nei confronti di B._.
E.
Con sentenza del 18 dicembre 2020 il Giudice della Pretura penale ha prosciolto F._ e E._ dalle imputazioni di acquisizione illecita di dati e di accesso indebito a un sistema per l'elaborazione di dati. Il giudizio motivato è stato ricevuto il 22 marzo 2021 dal PP che, il 17 maggio 2021, ne ha trasmesso una copia alla CRP, sollecitandola a pronunciarsi sul reclamo del 31 ottobre 2019 della A._.
F.
Con sentenza del 15 giugno 2021 la CRP ha statuito sul reclamo, respingendolo. La Corte cantonale, fondandosi essenzialmente sul giudizio di proscioglimento degli altri imputati, ha confermato il decreto di abbandono nei confronti di B._ per la mancanza di sufficienti indizi di reato.
G.
La A._ impugna questa sentenza con un ricorso in materia penale del 23 agosto 2021 al Tribunale federale, chiedendo di annullarla. La ricorrente fa valere la violazione del diritto di essere sentita e del "divieto di adottare comportamenti contraddittori".
H.
La Corte cantonale e il PP si rimettono al giudizio del Tribunale federale. B._ chiede di respingere il ricorso. L'11 ottobre 2021 la ricorrente ha comunicato di rinunciare a replicare e di confermarsi nelle sue conclusioni. L'opponente si è succintamente espresso il 25 ottobre 2021 sulle osservazioni della ricorrente, contestando che la CRP sarebbe incorsa in una svista.

Diritto:
1.
1.1. Il ricorso, tempestivo (art. 100 cpv. 1 in relazione con l'<ref-law>) e diretto contro una decisione finale (<ref-law>), resa in materia penale (<ref-law>) da un'autorità cantonale di ultima istanza (<ref-law>), è sotto i citati aspetti ammissibile.
1.2. Secondo l'<ref-law>, ha diritto di ricorrere in materia penale chi ha partecipato al procedimento dinanzi all'autorità inferiore o è stato privato della possibilità di farlo (lett. a), e ha un interesse giuridicamente protetto all'annullamento o alla modifica della decisione impugnata (lett. b), segnatamente l'accusatore, se la decisione impugnata può influire sul giudizio delle sue pretese civili. Indipendentemente dalla legittimazione nel merito, la ricorrente è in ogni caso abilitata, quale parte nella procedura, a censurare la violazione di garanzie procedurali che il diritto le conferisce in tale veste e la cui disattenzione equivale a un diniego di giustizia formale (<ref-ruling> consid. 2; <ref-ruling> consid. 1.1; <ref-ruling> consid. 2). In questa evenienza, l'interesse giuridicamente protetto all'annullamento della decisione impugnata richiesto dall'<ref-law> non si fonda su aspetti di merito, bensì sul diritto di partecipare alla procedura (<ref-ruling> consid. 1.3). Il diritto di invocare le garanzie procedurali non permette tuttavia di rimettere in discussione, nemmeno indirettamente, il giudizio di merito (<ref-ruling> consid. 2; <ref-ruling> consid. 1.1).
A prescindere dalla questione delle eventuali pretese civili della ricorrente quale accusatrice privata, essa è in concreto legittimata, quale parte nella procedura dinanzi alla CRP, a fare valere che la Corte cantonale avrebbe violato il suo diritto di essere sentita per avere, nonostante la sospensione della procedura, statuito sul reclamo fondandosi sulla sentenza del 18 dicembre 2020 della Pretura penale senza previamente sentirla. Contrariamente a quanto ritiene l'opponente nella sua risposta al ricorso, il gravame è quindi sotto questo profilo ammissibile. La ricorrente fa infatti valere un diniego di giustizia formale.
2.
2.1. Essa rimprovera alla Corte cantonale di avere violato il suo diritto di essere sentita per avere emanato il giudizio sul reclamo fondandosi sulla sentenza del 18 dicembre 2020 del Giudice della Pretura penale senza previamente avvisarla. Rileva che la sentenza della Pretura penale non era passata in giudicato, siccome era stata appellata sia dalla ricorrente medesima sia dal PP. Sostiene che, in tale circostanza, la procedura di reclamo continuava a rimanere sospesa, sicché, prima di riattivarla e di statuire nel merito del gravame, la CRP avrebbe dovuto avvisarla e permetterle di esprimersi.
2.2. Il diritto di essere sentito (<ref-law>, <ref-law>) assicura alle parti la facoltà di esprimersi prima che sia presa una decisione che le tocca nella loro situazione giuridica e comprende il diritto di consultare gli atti, di offrire mezzi di prova su punti rilevanti e di partecipare alla loro assunzione o perlomeno di potersi esprimere sui risultati, in quanto possano influire sul giudizio che dovrà essere adottato (<ref-ruling> consid. 7.2.2.1 pag. 103 e rinvii). Il diritto di essere sentiti implica pertanto la facoltà di esprimersi sulle prove idonee ad influire sulla decisione (<ref-ruling> consid. 1.1). Quando un'istanza di ricorso intende fondare il proprio giudizio su nuove prove, essa deve informare le parti e concedere loro la possibilità di esprimersi al riguardo (<ref-ruling> consid. 1.1; <ref-ruling> consid. 3.1; <ref-ruling> consid. 2b).
2.3. La sentenza impugnata, che conferma il decreto di abbandono nei confronti di B._, è essenzialmente fondata sulle risultanze del giudizio del 18 dicembre 2020 del Giudice della Pretura penale, che ha prosciolto F._ e E._ dalle imputazioni di acquisizione illecita di dati e di accesso indebito a un sistema per l'elaborazione di dati. La CRP ha ritenuto che la mancanza di rilevanza penale dei fatti addebitati a F._ comportava la stessa conclusione con riferimento alle ipotesi di reato riguardanti B._, di natura del tutto accessoria rispetto a quelle contro l'imputato prosciolto. La sentenza di proscioglimento del 18 dicembre 2020 del giudice di merito di prima istanza, trasmessa alla CRP dal PP, ha quindi avuto una rilevanza determinante per il giudizio della CRP riguardo a B._.
La Corte cantonale non ha tuttavia informato le parti di avere versato al fascicolo di causa questo atto decisivo di cui intendeva prevalersi ai fini della sua decisione, concedendo loro la possibilità di esprimersi in proposito. A maggior ragione ove si consideri che, con la decisione del 19 febbraio 2020 del Presidente della CRP, la procedura di reclamo era stata sospesa fino al passaggio in giudicato dei procedimenti penali, allora pendenti presso la Pretura penale. Poiché risulta che la sentenza del 18 dicembre 2020 del Giudice della Pretura penale era stata impugnata dinanzi al tribunale d'appello, essa non era passata in giudicato quando la CRP ha riattivato la procedura e si è pronunciata sul gravame (cfr. <ref-law>). Statuendo sul reclamo sulla base di tale sentenza senza però previamente sentire la ricorrente, la Corte cantonale ha quindi violato il suo diritto di essere sentita.
3.
Ne segue che il ricorso deve essere accolto e la sentenza impugnata deve essere annullata.
Le spese giudiziarie sono poste in parte a carico dell'opponente privato (<ref-law>). Non possono per contro essere accollate spese giudiziarie allo Stato del Cantone Ticino (<ref-law>). Esso è tuttavia tenuto a versare alla ricorrente, vincente, un'indennità a titolo di ripetibili della sede federale (art. 68 cpv. 1 e 2 LTF).

Per questi motivi, il Tribunale federale pronuncia:
1.
Il ricorso è accolto. La sentenza emanata il 15 giugno 2021 dalla Corte dei reclami penali del Tribunale d'appello del Cantone Ticino è annullata.
2.
Le spese giudiziarie di fr. 1'500.-- sono poste a carico dell'opponente.
3.
Lo Stato del Cantone Ticino rifonderà alla ricorrente un'indennità di fr. 3'000.-- a titolo di ripetibili della sede federale.
4.
Comunicazione alle parti, rispettivamente ai loro patrocinatori, e alla Corte dei reclami penali del Tribunale d'appello del Cantone Ticino.